savostin
@savostin
Еще один программист

Безопасно ли открывать схему проверки входных данных сайта?

Есть некий сайт, входные данные от пользователя которого проверяются, скажем, regexp'ом.
Для отзывчивости веб-интерфейса данные проверяются Javascript на стороне клиента, для предотвращения взлома - дополнительно на стороне сервера (php). Regexp один и тот же. Есть мысль вынести его в json файл, доступный по http, и подгружать его в Javascript.
Насколько это опасно, ибо 100% уверенности в полном покрытии всех возможных XSS нет?
Т.е. зная regexp имхо проще подобрать вредоносные входные параметры, чем не зная. Но большинство CMS, форумов и пр. с открытым исходным кодом почему-то не сильно этого боятся.
  • Вопрос задан
  • 3119 просмотров
Решения вопроса 1
@Vampiro
Не стоит бояться показывать пользователю как вы проверяете входные данные. Их сокрытие никак не повышает безопасность.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
Melkij
@Melkij
PostgreSQL DBA
Какая связь между регуляркой и XSS?
На стороне пользователя - валидация логики. На стороне сервера - повторная валидация логики и соответствующее экранирование/преобразование для сохранности и безвредности этих данных. Если в БД сохранение - prepared statements, вывод в HTML - htmlspecialchars, вывод в JSON - json_encode, вывод ещё куда - соответствующие преобразования для этого конкретного формата.
Ответ написан
FanatPHP
@FanatPHP
Чебуратор тега РНР
Как и большинство хомячков, афтор путает валидацию данных и форматирование вывода.

Как правильно отмечено постом выше, эти две вещи никак друг с другом не связаны. Вообще. Разве только тем, что если полагаться на валидацию входящих, то можно налететь на инъекцию второго порядка, точно так же, как в случае с SQL.

Поэтому валидацию надо оставить как есть, а форматирование производить в обязательном порядке в автоматическом режиме, средствами шаблонизатора. При этом учитывая среду, в которую данные выводятся. Для SQL, HTML, JS и многих других разных вариантов вывода форматирование должно быть РАЗНЫМ
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы