Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: проверка данных POST
Форумы портала PHP.SU » PHP » Программирование на PHP » проверка данных POST

Страниц (2): [1] 2 »
 

1. broshurkaplus - 03 Марта, 2011 - 19:42:18 - перейти к сообщению
здравствуйте
есть поле в форме для ввода комментария
нужно проверить текст

после отправки использую функ nl2br() для разделения строк она вставляет /бр

какой функцией или ещё чем мне проверять текст для защиты приложения и бд от потенциальных рисков?
на данные момент думаю применить strip_tags ( string str [, string allowable_tags] )
указав в качестве необязательного параметра </br>
но данная функция походу игнорирует незавершённые теги или теги с ошибками

какие ещё варианты или этого вполне достаточно?
2. CTAPbIu_KODEP - 03 Марта, 2011 - 22:23:53 - перейти к сообщению
htmlspecialchars(string $str);
преобразит кавычки скобки и др. в html представление.
3. Мелкий - 03 Марта, 2011 - 22:32:55 - перейти к сообщению
broshurkaplus, базе данных, если это, конечно, не xml, вообще пофиг на тэги.
Говоря о MySQL, используйте mysql_real_escape_string для защиты от sql-инъекций и htmlspecialchars для защиты от XSS - вполне достаточно.
4. DeepVarvar - 03 Марта, 2011 - 22:38:21 - перейти к сообщению
broshurkaplus пишет:
nl2br()

Кстати...
Говорят что в php4 (или 3?) эта ф-ция возвращала <br>
А с некоторой версии стала возвращать <br />
Так вот у меня рнр-5.2.10 и чота возвращает она по старинке <br>

К чему бы это?
5. CTAPbIu_KODEP - 03 Марта, 2011 - 23:11:28 - перейти к сообщению
DeepVarvar пишет:
broshurkaplus пишет:
nl2br()

Кстати...
Говорят что в php4 (или 3?) эта ф-ция возвращала <br>
А с некоторой версии стала возвращать <br />
Так вот у меня рнр-5.2.10 и чота возвращает она по старинке <br>

К чему бы это?

может баГ))
6. DeepVarvar - 03 Марта, 2011 - 23:16:32 - перейти к сообщению
CTAPbIu_KODEP пишет:
может баГ))

скорее сборка такая... Он же не из сорцов - он из репозитария
7. OrmaJever - 04 Марта, 2011 - 00:01:26 - перейти к сообщению
DeepVarvar пишет:
Так вот у меня рнр-5.2.10 и чота возвращает она по старинке <br>

5.1.1 <br/>
8. JustUserR - 04 Марта, 2011 - 12:25:21 - перейти к сообщению
broshurkaplus Для осуществления поддержки безопасности предполагамеого web-приложения, необходимо проведение операции модификации уровня элементного трактования относительно разделительных и управляющих объектов для полученных информационных полей, которое в аспекте использование HTML-синтаксиса может быть обеспечено функцией htmlentities, однако для осуществления гарантированной защиты требуется предшествующее сопоставление кодовых таблиц, используемых для размещения данных информационных полей в слое данных
9. broshurkaplus - 04 Марта, 2011 - 16:05:30 - перейти к сообщению
спасибо всё понятно

str И он ей говорит :
- Привет!
Она : "Привет."

делаю так
$_POST[str]= mysql_real_escape_string($_POST[str])
$_POST[str]= htmlspecialchars($_POST[str])
$_POST[str]=nl2br($_POST[str]);

ДУМАЮ ЭТОГО КОДА БУДЕТ ДОСТАТОЧНО???

далее вставляем в базу и будет:

И он ей говорит :<br />
- Привет!<br />
Она : "Привет."<br />

смущает то что если пользователь вместо " использует 'и' тоне выдаст ли \'\'
что некорректно отобразится при выдаче контента пользователю ?

да простите за суматоху у меня nl2br добавляет <br />, не так / поставил.
10. Мелкий - 04 Марта, 2011 - 16:27:32 - перейти к сообщению
broshurkaplus пишет:
смущает то что если пользователь вместо " использует 'и' тоне выдаст ли \'\'
что некорректно отобразится при выдаче контента пользователю ?

Смотря где смотреть. До сохранения в базе - будет экранирование. При извлечении данных - не будет.

Да, этих 3-х функций вполне достаточно.
Только к элементам ассоциативного массива обращайтесь так: $_POST['str'], ключ в кавычки надо заключать. Правильнее и ошибок не будет, если вдруг объявите константу с именем, совпадающем с именем ключа.
11. broshurkaplus - 04 Марта, 2011 - 17:06:57 - перейти к сообщению
поставил в скрипт
$_POST[str]= mysql_real_escape_string($_POST[str])
$_POST[str]= htmlspecialchars($_POST[str])
$_POST[str]=nl2br($_POST[str]);

а он из базы при таком порядке функций возвращает всё в одну строку, в базе нет <br />
хотя при просмотре кода страницы строки отображаются как надо и <br /> нету

может порядок функций изменить ? ща попробую
в чем дело?
(Добавление)
да, эти функции защищают, но мне нужно из базы выводить данные с <br /> для отображения новых строк, а при таком- строки выводятся в одну строку! хотя по идее мы ведь сначала делаем преобразования а затем добав. <br />
может есть другая функ вместо nl2br
а то данные выводятся не корректно, браузер - хром
как поступить?
12. OrmaJever - 04 Марта, 2011 - 17:34:29 - перейти к сообщению
broshurkaplus надо понимать зачем каждая функция, а не тупо липить всё в подряд.
А в одну строку пишет потому что \n заменяется на <br>
13. broshurkaplus - 04 Марта, 2011 - 19:21:51 - перейти к сообщению
OrmaJever пишет:
А в одну строку пишет потому что \n заменяется на <br>


можно тут поподробнее

я уже почитал про функции. нужно ведь и защититься и вывести в нужном формате

если не использовать nl2br, то в бд строки отдельно а на странице всё в одну,
а так мы переводим стоку в обязательном порядке
наскоко помню nl2br добавляет <br/> перед каждым переводом строки
(как добавить \n- новая строка при выводе из базы)


?
14. OrmaJever - 04 Марта, 2011 - 20:01:47 - перейти к сообщению
broshurkaplus пишет:
нужно ведь и защититься и вывести в нужном формате

Защищатся и выводить в нужном формате это разные вещи.
mysql_escape_string() - от sql
htmlspecialchars() - от xss
не как не меняют вывод.
broshurkaplus пишет:
наскоко помню nl2br добавляет <br/> перед каждым переводом строки

Немножко не верно описано, она не добавляет а заменяет \n на <br/>.
Если нужно оставить \n можно использовать str_replace()
15. broshurkaplus - 06 Марта, 2011 - 18:13:39 - перейти к сообщению
блин

подскажите как правильно использовать
уже устал пробовать
в бд строки разделены, в при выводе значения поля запросом из бд все строки слитно!

 

Powered by ExBB FM 1.0 RC1