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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: проверка данных POST

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Описание: проверить данные переданные из textarea
broshurkaplus
Отправлено: 03 Марта, 2011 - 19:42:18
Post Id



Посетитель


Покинул форум
Сообщений всего: 354
Дата рег-ции: Янв. 2011  
Откуда: Пружаны Бресткая обл. Беларусь


Помог: 2 раз(а)




здравствуйте
есть поле в форме для ввода комментария
нужно проверить текст

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

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

какие ещё варианты или этого вполне достаточно?
 
 Top
CTAPbIu_KODEP
Отправлено: 03 Марта, 2011 - 22:23:53
Post Id



Новичок


Покинул форум
Сообщений всего: 47
Дата рег-ции: Февр. 2011  
Откуда: Джанкой, Украина


Помог: 0 раз(а)




htmlspecialchars(string $str);
преобразит кавычки скобки и др. в html представление.
 
 Top
Мелкий Супермодератор
Отправлено: 03 Марта, 2011 - 22:32:55
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




broshurkaplus, базе данных, если это, конечно, не xml, вообще пофиг на тэги.
Говоря о MySQL, используйте mysql_real_escape_string для защиты от sql-инъекций и htmlspecialchars для защиты от XSS - вполне достаточно.


-----
PostgreSQL DBA
 
 Top
DeepVarvar Супермодератор
Отправлено: 03 Марта, 2011 - 22:38:21
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




broshurkaplus пишет:
nl2br()

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

К чему бы это?
 
 Top
CTAPbIu_KODEP
Отправлено: 03 Марта, 2011 - 23:11:28
Post Id



Новичок


Покинул форум
Сообщений всего: 47
Дата рег-ции: Февр. 2011  
Откуда: Джанкой, Украина


Помог: 0 раз(а)




DeepVarvar пишет:
broshurkaplus пишет:
nl2br()

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

К чему бы это?

может баГ))
 
 Top
DeepVarvar Супермодератор
Отправлено: 03 Марта, 2011 - 23:16:32
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




CTAPbIu_KODEP пишет:
может баГ))

скорее сборка такая... Он же не из сорцов - он из репозитария
 
 Top
OrmaJever Модератор
Отправлено: 04 Марта, 2011 - 00:01:26
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




DeepVarvar пишет:
Так вот у меня рнр-5.2.10 и чота возвращает она по старинке <br>

5.1.1 <br/>


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
JustUserR
Отправлено: 04 Марта, 2011 - 12:25:21
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




broshurkaplus Для осуществления поддержки безопасности предполагамеого web-приложения, необходимо проведение операции модификации уровня элементного трактования относительно разделительных и управляющих объектов для полученных информационных полей, которое в аспекте использование HTML-синтаксиса может быть обеспечено функцией htmlentities, однако для осуществления гарантированной защиты требуется предшествующее сопоставление кодовых таблиц, используемых для размещения данных информационных полей в слое данных


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
broshurkaplus
Отправлено: 04 Марта, 2011 - 16:05:30
Post Id



Посетитель


Покинул форум
Сообщений всего: 354
Дата рег-ции: Янв. 2011  
Откуда: Пружаны Бресткая обл. Беларусь


Помог: 2 раз(а)




спасибо всё понятно

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

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

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

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

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

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

да простите за суматоху у меня nl2br добавляет <br />, не так / поставил.
 
 Top
Мелкий Супермодератор
Отправлено: 04 Марта, 2011 - 16:27:32
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




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

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

Да, этих 3-х функций вполне достаточно.
Только к элементам ассоциативного массива обращайтесь так: $_POST['str'], ключ в кавычки надо заключать. Правильнее и ошибок не будет, если вдруг объявите константу с именем, совпадающем с именем ключа.


-----
PostgreSQL DBA
 
 Top
broshurkaplus
Отправлено: 04 Марта, 2011 - 17:06:57
Post Id



Посетитель


Покинул форум
Сообщений всего: 354
Дата рег-ции: Янв. 2011  
Откуда: Пружаны Бресткая обл. Беларусь


Помог: 2 раз(а)




поставил в скрипт
$_POST[str]= mysql_real_escape_string($_POST[str])
$_POST[str]= htmlspecialchars($_POST[str])
$_POST[str]=nl2br($_POST[str]);

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

может порядок функций изменить ? ща попробую
в чем дело?
(Добавление)
да, эти функции защищают, но мне нужно из базы выводить данные с <br /> для отображения новых строк, а при таком- строки выводятся в одну строку! хотя по идее мы ведь сначала делаем преобразования а затем добав. <br />
может есть другая функ вместо nl2br
а то данные выводятся не корректно, браузер - хром
как поступить?
 
 Top
OrmaJever Модератор
Отправлено: 04 Марта, 2011 - 17:34:29
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




broshurkaplus надо понимать зачем каждая функция, а не тупо липить всё в подряд.
А в одну строку пишет потому что \n заменяется на <br>


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
broshurkaplus
Отправлено: 04 Марта, 2011 - 19:21:51
Post Id



Посетитель


Покинул форум
Сообщений всего: 354
Дата рег-ции: Янв. 2011  
Откуда: Пружаны Бресткая обл. Беларусь


Помог: 2 раз(а)




OrmaJever пишет:
А в одну строку пишет потому что \n заменяется на <br>


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

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

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


?

(Отредактировано автором: 04 Марта, 2011 - 19:31:41)

 
 Top
OrmaJever Модератор
Отправлено: 04 Марта, 2011 - 20:01:47
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




broshurkaplus пишет:
нужно ведь и защититься и вывести в нужном формате

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

Немножко не верно описано, она не добавляет а заменяет \n на <br/>.
Если нужно оставить \n можно использовать str_replace()


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
broshurkaplus
Отправлено: 06 Марта, 2011 - 18:13:39
Post Id



Посетитель


Покинул форум
Сообщений всего: 354
Дата рег-ции: Янв. 2011  
Откуда: Пружаны Бресткая обл. Беларусь


Помог: 2 раз(а)




блин

подскажите как правильно использовать
уже устал пробовать
в бд строки разделены, в при выводе значения поля запросом из бд все строки слитно!
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB