Я заканчиваю свой веб-сайт и хочу сделать его очень безопасным для SQL-инъекций. Большая часть этого проходит и использует mysql_real_escape_string() для любого потенциального пользовательского ввода.
Это нормально для большинства вещей, где мне просто нужно использовать «полосные косые черты», чтобы вернуть исходный контент для отображения на странице. Однако я не могу вернуть возврат каретки.
Есть несколько мест, где пользователи могут отправлять части с возвратом каретки (например, сообщения, начинающиеся, например, «Привет, Джон», а затем дважды возвращающиеся к основному сообщению). Как я могу это исправить? Stripslashes просто возвращает сообщение с rnrn, что нехорошо.
В качестве примера (я пытаюсь проверить все возможные входные данные).
Этот текст:
Once upon a time there was a guy named "steve" or 'john' or backslash (\)
Then, two lines later, he left.
Сохраняется так в базе данных SQL:
Once upon a time there was a guy named \"steve\" or \'john\' or backslash (\\)\r\n\r\nThen, two lines later, he left.
И использование полосовых косых черт оставляет это так (обратите внимание, что я делаю следующее, чтобы напечатать его в html - :
Once upon a time there was a guy named "steve" or 'john' or backslash (\)rnrnThen, two lines later, he left.
Я пробовал nl2br, но он почему-то ничего не делает. Буду рад любым мыслям здесь, большое спасибо!
mysql_
функции. - person Kermit   schedule 26.01.2013mysql_real_escape_string
кажется избыточным. - person Philipp   schedule 26.01.2013\", \', \r, \n
и т. д.? - person Salman A   schedule 26.01.2013\", \', \r, \n
. Теперь хитрость заключается в том, что когда я печатаю эти данные на странице, чтобы\r and \n
были возвратами, для которых они предназначены. - person cschippe   schedule 26.01.2013