Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Вопрос безопасности
Stave  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Старик
***

Профиль
Группа: Пользователь
Сообщений: 138
Пользователь №: 40254
На форуме: 2 года, 2 месяца, 29 дней
Карма: 4




Доброго дня!

Вопрос состоит в следующем:

в форме помимо
<input />
очистку строки которой я делаю, присутствует еще и
<textarea></textarea>


По необходимости требуется разделение строки при передачи данных в БД: nl2br();
Чтобы в дальнейшем для отправки в заявке по <textarea></textarea> был читабельный вывод получателю.

Но встает сразу проблема, если какой-нибудь урюк захочет по-хулиганить.
Не помню уже где читал, что можно выслать в такой форме <img src="путь/bugogashechka.PHP" />, ну а что там в этом файле .php может быть уже не представить.

Есть ли возможность ограничить использование в форме html тегов, кроме <br />??


Я как-то встречал при изучении регулярные выражения(шаблон):
preg_match("/^(?:[a-z0-9]+(?:[-_.]?[a-z0-9]+)?@[a-z0-9_.-]+(?:\.?[a-z0-9]+)?\.[a-z]{2,5})$/i")


Но для меня это осталось дремучим лесом


--------------------
Если долго в одних стенах живешь, ты с ними сростаешься
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
depp  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 290
Пользователь №: 40589
На форуме: 2 года
Карма: 19




PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Stave  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Старик
***

Профиль
Группа: Пользователь
Сообщений: 138
Пользователь №: 40254
На форуме: 2 года, 2 месяца, 29 дней
Карма: 4




Цитата (depp @ 6.04.2016 - 13:44)
http://php.net/strip_tags ?

Рассматривал, не пойдет, так как нужен лишь <br /> остальное ограничить


--------------------
Если долго в одних стенах живешь, ты с ними сростаешься
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
bestxp  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



орангутанг
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 2004
Пользователь №: 36605
На форуме: 3 года, 9 месяцев, 15 дней
Карма: 111




Так в чем проблема пусть что угодно вставляет, на выходе экранируешь + nl2br и все, пофиг что там будет


--------------------
PMПисьмо на e-mail пользователюСайт пользователяICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
depp  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 290
Пользователь №: 40589
На форуме: 2 года
Карма: 19




Цитата (Stave @ 6.04.2016 - 13:47)
Цитата (depp @ 6.04.2016 - 13:44)
http://php.net/strip_tags ?

Рассматривал, не пойдет, так как нужен лишь <br /> остальное ограничить

а вы документацию к этой функции внимательно прочитали?
PMПисьмо на e-mail пользователю
    1   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Stave  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Старик
***

Профиль
Группа: Пользователь
Сообщений: 138
Пользователь №: 40254
На форуме: 2 года, 2 месяца, 29 дней
Карма: 4




Цитата (depp @ 6.04.2016 - 14:00)
Цитата (Stave @ 6.04.2016 - 13:47)
Цитата (depp @ 6.04.2016 - 13:44)
http://php.net/strip_tags ?

Рассматривал, не пойдет, так как нужен лишь <br /> остальное ограничить

а вы документацию к этой функции внимательно прочитали?

Не правильно ее применил!
Если использовать вот так:
$symptoms = strip_tags(nl2br($_POST["description"]), "<br/><br>");


то все Отлично работает допускается ЛИШЬ тэг <br />

Благодарю Вас и Всех всех кто откликнулся


--------------------
Если долго в одних стенах живешь, ты с ними сростаешься
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
bestxp  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



орангутанг
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 2004
Пользователь №: 36605
На форуме: 3 года, 9 месяцев, 15 дней
Карма: 111




а если вызов nl2br сделать после strip_tags то и <br/> не нужно удалять)


--------------------
PMПисьмо на e-mail пользователюСайт пользователяICQ
    1   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Stave  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Старик
***

Профиль
Группа: Пользователь
Сообщений: 138
Пользователь №: 40254
На форуме: 2 года, 2 месяца, 29 дней
Карма: 4




Цитата (bestxp @ 6.04.2016 - 14:38)
а если вызов nl2br сделать после strip_tags то и <br/> не нужно удалять)

Вот именно таким способом как я привел выше, здесь не удаление тега идет как описано на http://php.net/strip_tags, а удаление ВСЕХ кроме <br>


именно то, что мне и нужно было


--------------------
Если долго в одних стенах живешь, ты с ними сростаешься
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
twin  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Глухой нуб
******

Профиль
Группа: Администратор
Почтальон группы
Сообщений: 15559
Пользователь №: 6543
На форуме: 8 лет, 2 месяца
Карма: 299

Трезвый :
5 лет, 11 месяцев, 10 дней


Он не то имел ввиду. :) Вот так надо:
$symptoms = nl2br(strip_tags($_POST["description"]));


Иначе остается уязвимость.


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

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Зачем ворошить старое, когда можно наворотить новое?

user posted image
PMСайт пользователяICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Stave  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Старик
***

Профиль
Группа: Пользователь
Сообщений: 138
Пользователь №: 40254
На форуме: 2 года, 2 месяца, 29 дней
Карма: 4




Цитата (twin @ 6.04.2016 - 15:24)
Он не то имел ввиду. :) Вот так надо:
$symptoms = nl2br(strip_tags($_POST["description"]));


Иначе остается уязвимость.

Я понял))
А в чем уязвимость остаётся? Ведь обработчик с той записью, что я выложил - не пропускает в бд ни один html тег, кроме того, что я вписал в ковычки
Скажите, чтобы знал, а то странно выходит, код работает


--------------------
Если долго в одних стенах живешь, ты с ними сростаешься
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
twin  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Глухой нуб
******

Профиль
Группа: Администратор
Почтальон группы
Сообщений: 15559
Пользователь №: 6543
На форуме: 8 лет, 2 месяца
Карма: 299

Трезвый :
5 лет, 11 месяцев, 10 дней


На а его же пропускает?))) А это обычный тег. И у него есть атрибуты. На вскидку вот так можно поломать блочный дизайн:
<br style="clear:both" />


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

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Зачем ворошить старое, когда можно наворотить новое?

user posted image
PMСайт пользователяICQ
    1   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Stave  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Старик
***

Профиль
Группа: Пользователь
Сообщений: 138
Пользователь №: 40254
На форуме: 2 года, 2 месяца, 29 дней
Карма: 4




Цитата (twin @ 6.04.2016 - 15:24)
Он не то имел ввиду. :) Вот так надо:
$symptoms = nl2br(strip_tags($_POST["description"]));


Иначе остается уязвимость.

И вправду!=))
А я и не подумал атрибуты проверить!)
Огромное вам спасибо, по +су вам!


--------------------
Если долго в одних стенах живешь, ты с ними сростаешься
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
twin  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Глухой нуб
******

Профиль
Группа: Администратор
Почтальон группы
Сообщений: 15559
Пользователь №: 6543
На форуме: 8 лет, 2 месяца
Карма: 299

Трезвый :
5 лет, 11 месяцев, 10 дней


Это еще не всё. strip_tags() Убирает теги наглухо. Не оставляя пробелов. И не только теги, а всё между бричками. И в итоге целостность текста может нарушится. Эту функцию вообще нельзя применять для фильтрации. Я бы посоветовал сходить сюда. Самое время.


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

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Зачем ворошить старое, когда можно наворотить новое?

user posted image
PMСайт пользователяICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса