Почему HTML не исправил апостроф при получении ввода? - PullRequest
0 голосов
/ 26 июня 2019

Я заметил, что основной причиной внедрения SQL-кода и кода на веб-сайтах является «input type = text», возвращающий Apostrophe как команду, которую нужно выполнить, а не как символ.

Я также заметил, чтоЯзыки программирования, такие как java и php, имеют обходной путь к реальной проблеме, а не просто исправляют апостроф в HTML.Я знаю, как предотвратить это с помощью языков программирования.

mysql_real_escape_string("sql query here");

Я исследовал онлайн, но не смог найти ничего, что могло бы ответить на мой вопрос.Есть ли причина, по которой существуют обходные пути, а не исправление самого апострофа?Я имею в виду, когда HTML читает и возвращает значение, почему он не может просто вернуть \ 'или \ "вместо просто' или"

Ответы [ 2 ]

4 голосов
/ 26 июня 2019

' имеет особое значение, если вы пытаетесь вставить его в запрос SQL.

' не имеет особого значения, если вы попытаетесь вставить его в элемент HTML (и если вы отправите don't и ожидаете, что результат будет <span>don't</span>, вы не станете хотел бы получить <span>don\'t</span> обратно!)

Браузер не может знать, что делать с данными после их отправки на сервер. Он просто отправляет данные, которые ему дают, используя стандартную кодировку, которую ему предписано использовать атрибутом enctype.

Защита от XSS, SQL-инъекций и других видов атак может быть надежно реализована только при использовании соответствующей обработки данных для конкретной среды, в которую они внедряются в .

1 голос
/ 26 июня 2019

Самый простой способ объяснить это - заставить вас представить веб-страницу, похожую на дом с домашней системой безопасности, где двери и окна - это html, а система безопасности со всеми ее датчиками - это такие языки, как java., .NET / C #, php и т. Д.

Если двери были сделаны так, чтобы они могли подать сигнал тревоги в любое время, когда он думал, что замок был взломан, и окна могли сказать, когда их стекло разбилось само по себе.да, это было бы круто.

Но что теперь вы будете делать, если у вас грабитель прорежет дыру в стене и войдет в ваш дом, не касаясь ни дверей, ни окон?В этот момент они обошли вашу защиту дверей / окон (HTML), и все, что осталось, чтобы защитить ваш дом, это датчики движения / инфракрасные наводки от системы безопасности (php / java / c #).

Этопроблема, с которой мы столкнемся.Если в HTML была добавлена ​​возможность предотвращения SQL-инъекций, и на стороне сервера ничего не было сделано (т. Е. Нет датчиков движения / инфаркта в доме), то что остается, чтобы пользователи не могли обойти HTML-страницу и напрямую отправлять вредоносные данные на сервер?

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