Есть ли дыра в безопасности в этом методе для защиты запросов Jquery / AJAX с PHP? - PullRequest
0 голосов
/ 13 марта 2012

На моей search.php странице, где пользователи могут искать вещи по городу / местоположению, поиск осуществляется через JQuery / AJAX на страницу с именем search_data.php, а результаты возвращаются на search.php.

Теперь вот что я делаю: На search.php У меня есть это:

$_SESSION['verid'] = randomid(12);
$_SESSION['verkey'] == randomid(12);

randomid - это функция, которая генерирует 12 случайных символов. Эти две переменные сеанса отправляются вместе с запросом jquery $.post как переменные javascript (с именами "vuid" и "vukid")

Вкл. search_data.php У меня есть это:

if ($_POST['vuid'] != $_SESSION['verid']) {
    header('Location: http://mysite.com/');
    die();
} else {
if ($_POST['vukid'] != $_SESSION['verkey']) {
    header('Location: http://mysite.com/');
    die();
} else {
//both keys correct. process Jquery data.
}

При использовании этого метода он не позволит кому-либо вручную перейти на search_data.php, пытаясь совершить вредоносные действия (я думаю?), И только Jquery сможет получить к нему доступ.

У меня вопрос, есть ли какая-то "дыра", которую я здесь не вижу? Это хороший способ защитить веб-страницы такого типа?

Ответы [ 2 ]

3 голосов
/ 13 марта 2012

Любой может симулировать любой HTTP-запрос, поэтому этот метод ненадежен.В этом случае он может подделать первый HTTP-запрос, чтобы инициировать сеанс, сохранить cookie-файл, возвращенный PHP-скриптом, и повторно использовать его для подделки второго HTTP-запроса, передающего cookie-файл, и ключи проверки, которые он получил из первого запроса.

1 голос
/ 13 марта 2012

Что за злые вещи?Я предполагаю, что search_data.php ссылки на базу данных?Было бы хорошо защитить этот скрипт, в частности, до минимально необходимого количества доступа.Вы можете использовать пользователя базы данных, у которого есть доступ только для чтения к вашим таблицам на search_data.php, и это немного минимизирует угрозы безопасности.

Итог: чем больше потенциальный ущерб может нанести злонамеренный пользователь, тем больше вам нужно защитить свою страницу и ресурсы.

OWASP - отличный ресурс для изучения потенциальной безопасностиугрозы и способы их устранения.

...