Ниже приведен фрагмент javascript, который я использую как часть сценария AJAX. Как предотвратить прямой доступ пользователя user_back_end_friends.php? Я не хочу, чтобы люди могли перейти на сайт domain.com/user_back_end_friends.php и посмотреть список друзей.
Код Javascript:
<script type="text/javascript"> $(document).ready(function() { $("#user_friends").tokenInput("/user_back_end_friends.php", { theme: "sometheme", userid: "<?php echo $id; ?>" }); }); </script>
Это то, что я нашел, но не уверен, как реализовать его с помощью javascript-кода выше:
Я использую это на странице, на которую мне нужно позвонить:
$included=1;include("user_back_end_friends.php");
Когда я должен предотвратить прямой доступ, я использую:
if(!$included){ die("Error"); }
Но как мне добавить эту часть, включенную в $, в код javascript?
Нет смысла защищать код javascript, вам нужно защитить только серверный код.
Во всяком случае, я думаю, что ваш подход не является правильным; если у вас уже есть зарегистрированный пользователь / идентификатор пользователя, я бы просто использовал идентификатор пользователя из сеанса вместо идентификатора пользователя, который предоставляется javascript. Таким образом, никто не может вмешиваться в это.
Таким образом, вы можете начать свою страницу с:
session_start(); if (isset($_SESSION['user_id')) { // do stuff with the user ID } else { // display error message? }
Вы не можете полностью блокировать доступ к этому скрипту по самой природе Интернета.
Вы можете проверить информацию о реферере, подтверждение ввода, вы можете создать переменную сеанса на родительской странице, отмеченной на дочерней странице.
Я сделал следующее. Обратите внимание, что это НЕ самое безопасное, как упоминалось в других ответах, вы не можете полностью блокировать доступ к этому сценарию (предоставляется ссылка на простой обход), но для моих простых целей это очень хорошо работало –
define('_REFERURL', 'http://www.example.com'); // This is the full URL of your domain that will be calling your PHP script(s)
Затем создайте функцию, которая проверяет ссылочный URL (который должен быть из вашего домена)
function allow_user() { if ($_SERVER['HTTP_REFERER'] == _REFERURL) { return true; } else { return false; } }
Использование:
if (allow_user()) { // Do things } else { // Alert, direct access attempted }
Простой проход: http://www.datatrendsoftware.com/spoof.html