Как узнать, с какого сайта сервер получает запрос? - PullRequest
0 голосов
/ 03 сентября 2011

Как я могу избежать межсайтового скриптинга, зная, с какого сайта пользователь запрашивает данные?

Ответы [ 5 ]

7 голосов
/ 03 сентября 2011

Как мне избежать межсайтового скриптинга

Вы не можете избежать межсайтового скриптинга, зная, с какого сайта пользователь запрашивает данные.

Вы можете избежать межсайтового скриптинга, правильно экранируя.

3 голосов
/ 03 сентября 2011
$_SERVER['HTTP_REFERER']

должен содержать URL-адрес, с которого исходит запрос.

РЕДАКТИРОВАТЬ: Если вы на самом деле пытаетесь предотвратить XSS, то это в основном сводится к необходимости убедиться, что вы используете htmlentities () везде, где вы печатаете нефильтрованные пользовательские данные, и должны действительно использовать его почти для всех данных, которые вы печатаете, но не ' t предназначено для просмотра в виде необработанного HTML.

Хотя при написании PHP-кода есть множество соображений, но их слишком много, чтобы обсуждать здесь без каких-либо указателей.

2 голосов
/ 03 сентября 2011

Я не уверен, что знание URL реферала подойдет вам, но

И большую часть времени атаки XSS исходили из ввода или данных, которые плохо отфильтрованы или очищены перед отображением в браузере, например печенье / сессии.

Пожалуйста, прочитайте статью ниже, которая обучает библиотеку предотвращать атаки XSS.

Ссылка: http://oozman.com/php-tutorials/avoid-cross-site-scripting-attacks-in-php/

1 голос
/ 03 сентября 2011

в массиве $ _SERVER в базовом случае это $ _SERVER ['HTTP_REFERER'] - но если пользователь заходит на ваш сайт с помощью метода js, например document.location.href = 'yoursite.com'.IE (тест на IE7) не отправляет вам информацию о реферере по соображениям безопасности.

1 голос
/ 03 сентября 2011

Используйте $_SERVER["HTTP_REFERER"], но посмотрите ответы на этот вопрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...