Я создаю веб-сайт, который до сих пор является чистым PHP. Я думал, что, поскольку у очень немногих людей нет включенного JavaScript (что мне интересно, почему!), Возможно, я должен создать свой сайт как полностью PHP-сайт без AJAX. Думаю ли я неправильно?
Чтобы быть уверенным, что если я внедрю AJAX, это увеличит риск нарушения моего сайта?
Должен ли я даже беспокоиться об этом и начать использовать AJAX?
Сам AJAX не будет увеличивать или уменьшать безопасность вашего сайта, по крайней мере, если его реализация будет сложной. Клиент (браузер) включит или выключит JavaScript. Если он включен, на стороне клиента может быть больше неуверенности, так как это не повлияет на ваш сервер и, следовательно, на ваш сайт.
Тем не менее, вы должны, конечно, безопасно внедрить свои точки входа AJAX (эти файлы на стороне сервера, к которым обращаются запросы AJAX). Два из самых важных правил, которые вы должны иметь в виду:
Я бы предложил использовать фреймворк (в зависимости от используемой фоновой технологии, такой как PHP, Java, Perl), поддерживающий AJAX, что упростит вам все это. Кроме того, вы можете найти что-то вроде «защиты приложений AJAX», чтобы получить более подробную информацию по этой теме.
Ajax не является по своей сути безопасным или ненадежным.
Однако он открывает «возможности» для небезопасного кода. Я часто вижу ошибку:
Пользователь аутентифицируется по коду, когда загружается страница
Идентификатор пользователя или другие учетные данные выдаются и подбираются с помощью JavaScript
Эти (полностью не прошедшие проверку подлинности) учетные данные отправляются обратно по каналу Ajax и не проверяются на стороне сервера. Очень легко взломать даже с помощью простого инструмента, такого как Fiddler !
Вы должны применить такой же уровень безопасности к своим веб-методам / веб-API, как и в других местах вашего сайта. Если вы это сделаете, Ajax не должен быть более или менее безопасным, чем «обычные» веб-страницы. Вещи, на которые следует обратить внимание, включают:
Проверка подлинности и авторизации в ваших веб-службах или API
Анти- SQL-инъекции
HTTPS при передаче личных или конфиденциальных данных
EDIT: Чтобы ответить на ваш вопрос более прямо: Ajax делает сайты более отзывчивыми и распространенными в современной сети. Будьте осторожны с безопасностью и грамотно деградируете для посетителей, не поддерживающих JS, если вы ожидаете, что значительное число посетителей отключится JavaScript или если какой-либо потерянный посетитель не подходит вам, и вам нечего бояться.
Я создаю веб-сайт, который до сих пор является чистым PHP. Я думал, что, поскольку у очень немногих людей нет включенного JavaScript (что мне интересно, почему!), Возможно, я должен создать свой сайт как полностью PHP-сайт без AJAX. Думаю ли я неправильно?
Я бы сказал, что у большинства людей есть JavaScript. Вероятно, 2% в большинстве случаев отключили эту должность с 2012 года .
Чтобы быть уверенным, что если я внедрю AJAX, это увеличит риск нарушения моего сайта?
Да, технически это так. Больше кода = больше шансов на ошибки, а ошибки безопасности будут их подмножеством.
Вы также будете увеличивать поверхность атаки вашего приложения, так как вы, как правило, будете применять больше обработчиков на стороне сервера для выполнения действий пользователя асинхронно.
Существует также больше шансов на появление ошибок на стороне клиента, таких как XSS (особенно больше шансов на прохождение XSS- ошибок DOM ).
Должен ли я даже беспокоиться об этом и начать использовать AJAX?
Вы должны быть «справедливо обеспокоены», а не беспокоиться. Повышенный риск считается приемлемым большинством сайтов, даже с высокими системами безопасности, такими как банковские приложения. Если вы правильно выполнили, ваш сайт может оставаться «таким же безопасным», как и без AJAX.
Как и на любом веб-сайте, обратите особое внимание на Top 10 OWASP и следуйте правилам безопасного кодирования, чтобы минимизировать риски. Всегда желательно получить оценку безопасности, проводимую внешней компанией, чтобы забрать все, что вы пропустили, хотя это может быть дорогостоящим.