#html #tags
#HTML #Теги
Вопрос:
Я хочу убедиться, что мошеннические пользователи не смогут повредить мой сайт или базу данных, вставив код в мои поля ввода. Какой код я должен использовать для его тестирования? Я знаю, что есть html-теги, такие как iframe, но я не знаю, что поместить внутрь, чтобы проверить это.
Спасибо.
Комментарии:
1. 1 — не уверен, почему кто-то проголосовал за вас, так как я бы подумал, что это законный вопрос нового пользователя. Хотя можно было бы лучше сформулировать как поиск указателей на рекомендации по безопасности веб-страниц.
2. Какую базу данных вы используете? На какой веб-технологии основан сайт?
3. Спасибо за 1. Я использую MS SQL server с asp. На самом деле, я больше отношусь к окну чата, чем к полю ввода.
Ответ №1:
HTML
Я думаю, что использование htmlspecialchars
(doc) (это функция в PHP, но другой язык может иметь аналогичную функцию) или использование других систем разметки (?), Таких как phpBB и MediaWiki, будет работать. Использование тегов HTML с помощью тегов черного / белого списка может работать, но это довольно опасно — взломщик может нанести вред вашему сайту путем XSSing.
Например, вы можете подумать, что разрешено разрешать только p
, br
, img
, font
, a
(кстати, это нехорошо использовать font
, когда можно использовать CSS), но XSS можно выполнить с помощью ввода <img src="asdf" onerror="alert('hi')"/>
или <a href="javascript:alert('hi')">
.
SQL
Вы должны знать о SQL-командах с внедрением SQL-кода.
Примером SQLi является :
Способ избежать SQLI’d в PHP — это использовать mysql_real_escape_string
(doc).
Комментарии:
1. Альтернативный способ избежать SQL-инъекций — использовать подготовленные инструкции .
Ответ №2:
Вы могли бы прочитать о SQL-инъекциях
Комментарии:
1. Спасибо. Как насчет тегов html?
Ответ №3:
Вставьте специальные символы, особенно '
, ?
, "
, $
, ;
, ,
и
. Если ваш сайт не выходит из строя на них, вы на правильном пути.
Но лучше всего использовать запросы с параметрами. Вы просто передаете строку в качестве параметра, и база данных позаботится об экранировании символов для вас. Вы вряд ли можете ошибиться, если сделаете это.
Ответ №4:
Это действительно зависит от архитектуры и взаимодействия пользователя с вашим сайтом. Внедрение SQL в поля, введенные пользователем, является типичной атакой на системы, которые используют базы данных для входа пользователей и т. Д. Отсюда ограничения на символы, вводимые в пользовательские поля, и их проверку перед использованием.
«О твоем сыне …» «О, маленький Билли!удалить таблицы ?»