2012-01-05 2 views
0

Я построил небольшое приложение, используя javascript. Я использую javascript для проверки формы, и мне интересно, если использовать тег «no script», если это защитит меня от людей, передающих нечистые данные в мой mysql db? Я откажу в доступе к приложению любому, кто его отключил. Является ли это безопасным методом или мне нужно также выполнять проверку php-формы поверх проверки js?No Script Tag - надежный? Secure?

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

Я знаю, что должен выполнить некоторую очистку php, например htmlentities, но хочу избежать проверки формы с помощью php.

Спасибо.

+1

По какой причине вы хотите избежать проверки формы с помощью php? –

ответ

6

Нет, вы не можете доверять стороне клиента для проверки. Вы всегда должны проверять серверную сторону. Валидация на стороне клиента может улучшить работу пользователя, но это не дает никакой пользы для безопасности.

+0

Я как бы понял, что я просто ленился и думал, что я спрашиваю. Спасибо. – user982853

1

Нет, вам всегда нужно выполнять проверку серверов. Вы можете изменить JS, даже когда он включен (например, в Chrome вы можете просто приостановить загрузку скрипта, отредактировать JS, затем запустить его), поэтому даже не важно, включено ли оно или нет.

Это хорошая отправная точка: http://net.tutsplus.com/tutorials/html-css-techniques/build-a-neat-html5-powered-contact-form/ (в направлении дно примеры валидации)

1

защита Javascript просто «визуальный». Любой может обойти его и вставить любые данные, которые он хочет.
Вы всегда должны проверять предоставленные пользователем данные на стороне сервера. В принципе, вы можете начать с mysql_real_escape_string() для предотвращения инъекции mysql и сделать некоторые дескрипторы тегов, если вы собираетесь отображать введенные данные назад.

2

Как правило, вы никогда не хотите полагаться на код на стороне клиента (в данном случае javascript) для проверки данных. Клиент полностью контролирует все, что вы бы вставляете в javascript, и поэтому было бы довольно легко обойти. Всегда проверяйте на сервере, где вы полностью контролируете происходящее.