Безопасность
1.
amfetaminf (24.01.2017 / 16:05)
Всем привет. У меня есть вопрос на счет безопасности. Я сначала экранирую данные через prepare, execute. А с базы данные вывожу с слабеньким фильтром типа htmlspecialchars и тд. Правильно я делаю?. Так-же, можно ли написать фильтр в котором будет записан список разрешенных знаков, и если при проверке переменной через этот фильтр в ней присутствуют неразрешенные знаки - они вырезаются!?
2.
ramzes (24.01.2017 / 16:56)
изначально конвертировать спецсимволы в их асии эквивалент, и так и писать в бд, и больше не парится с постоянной фильтрацией этих данных на выводе.
писать в чистом виде используя внутреннее экранирование мускул надо разве что при записи чистого хтмл в бд (виз редакторы например)
3.
amfetaminf (24.01.2017 / 17:01)
ramzes, Как я тебя понял, данные надо проганять через фильтр при вводе? И уж точно не при выводе?
4.
ramzes (24.01.2017 / 18:29)
железного правила не существует, однако логика подсказывает, что гораздо выгоднее фильтровать всего один раз при записи, чем бесконечное кол-во раз на выводе.
допустим 20 постов просмотренны 1000ей чеговек.
20000 раз будет фильтрация применена
5.
amfetaminf (24.01.2017 / 19:06)
ramzes, помнится я где-то слышал что данные лучше хранить в исходном виде...
6.
Вантуз-мен (24.01.2017 / 19:50)
Ну современные фреймворки практикуют хранение в бд без обработки, удобнее редактировать обрабатывать итд
Да понятно конечно что так более накладно
7.
ramzes (24.01.2017 / 19:51)
помнится когда то был мотор 14))
если вы уверены что вам не придется менять структуру этих самых данных, то ни одного "за" хранения в чистом виде не найдется.
все доводы сводятся к одному: можно потом изменить алгоритм вывода.
Добавлено через 01:59 сек.
Ну современные фреймворки практикуют хранение в бд без обработки, удобнее редактировать обрабатывать итд
Да понятно конечно что так более накладно
попробуй найди доводы в пользу этого)
8.
amfetaminf (24.01.2017 / 19:57)
Vantuz, Ну у меня простенькая самописная онлайн игра на pdo. Стоит ли переписывать весь код на фильтрацию при вводе? А при выводе с данными ничего делать не надо будет? И лучше фильтровать htmlspecialchars() или по другому?
Добавлено через 01:09 сек.
ramzes, пост 8 вам тоже)
9.
ramzes (24.01.2017 / 21:09)
Переписывать не стоит, тем более, у тебя ге блог или форум, где сотни и тысячи раз выводится обрабатываемый текст
10.
amfetaminf (24.01.2017 / 21:35)
ramzes, да, но у меня чат, форум, почта. Если хорошо раскрутить игру, то нагрузка наверное сильно возрастет? Переписать для меня не составит труда. Главное нормальный фильтр сделать и точно знать что безопасность повысится.
11.
ramzes (24.01.2017 / 21:54)
Не слишком сильно, но если не лень, то я бы на твоем месте все таки переписал,
однако, сначала убедись, что тебе не понадобится в будущем эти данные как то реформатировать.
Такое конечно крайне редко бывает, но все же бывает
12.
amfetaminf (24.01.2017 / 22:36)
ramzes, да пожалуй перепишу
13.
Dmitry Kokorin (25.01.2017 / 18:41)
я обычно пишу в базу как есть, потому как хз потом как я захочу воспользоваться этими данными..
а на выводе уже смотрю для каких целей мне нужны эти данные, и соответственно применяю тот или иной фильтр
URL:
https://visavi.net/topics/43380