2014-01-16 3 views
0

В веб-приложениях для того, чтобы предотвратить HTML и сценарий инъекции, я должен избежать ввод данных пользователем:Где предотвратить инъекцию HTML и скриптов?

  1. На стороне клиента перед отправкой на сервер.
  2. На сервере перед сохранением его в базе данных (на каком слое - бизнес, данные, веб-интерфейс?).
  3. На сервере перед отправкой обратно клиенту.
  4. На клиенте перед рендерингом.
  5. Все или некоторые из перечисленных выше.

?

+0

Проверка на стороне сервера считается более безопасной, чем клиентская. Используйте проверку на стороне клиента только для обеспечения хорошего пользовательского интерфейса и небольших проверок безопасности. –

ответ

-1

Вы должны относиться ко всем ввод данных пользователем, как грязный и сделать что-либо:

  1. Validate вход строго (только белые перечисленные значения принимаются)
  2. Validate вход свободно каждый раз, когда вы собираетесь его использовать. Это означает, что вы проверяете его на инъекции sql, когда вы вставляете его в db каждый раз, а не только в первый раз. Это означает, что если вы получите что-то из db, которое было когда-то введено пользователем, то в следующий раз, когда вы снова вставьте его в db, вы все равно будете рассматривать его как пользовательский ввод, чтобы его проверить. И когда вы нажимаете его клиенту, вам нужно его проверить как безопасный для клиента (xss, js, html, css).
0

Побег всех входных данных в точке входа, также используйте класс, основанный на структуре. Если у вас есть функции, которые часто используются повторно, также бегите сюда.

Любая точка, в которой сервер получает информацию от клиента, является обойденной точкой, поэтому защищайте каждый найденный вами.

-1

Все пользовательские входы могут быть проверены и отфильтрованы на самой стороне клиента.

Это самый безопасный способ предотвратить несанкционированные клиенты или злоумышленников для доступа к серверу.

В PHP есть несколько функций (), например replace(), stripslashes(), htmlspecialchars_decode() и т. Д.), которые могут использоваться для проверки ввода.

SQL-инъекции, xss (межсайтовый скриптинг) и т. Д. Могут быть заблокированы таким образом.

+0

Это опасный совет. Проверка на стороне клиента абсолютно бесполезна в качестве меры предосторожности, в которой используется сценарий. –

Смежные вопросы