Список методов Todo для предотвращения xss-атак, которые являются наиболее эффективными? - PullRequest
3 голосов
/ 24 августа 2011

Я хотел бы знать, какие лучшие методы / советы мы должны использовать, чтобы предотвратить и затруднить xss-атаку?

Я знаю:

А как насчет пользователей, которым необходимо заполнить базу данных?Какие ошибки обычно может совершить новый разработчик?

Спасибо

Ответы [ 3 ]

1 голос
/ 24 августа 2011

Какой метод наиболее эффективен, зависит от ваших требований. Если вам нужно разрешить пользователям HTML, вам, вероятно, понадобится очиститель HTML.

Если, однако, вы никогда не примете HTML от пользователей, вам необходимо применить контекстную кодировку. Вы можете использовать XSS без добавления пользователем нового тега. Строка атаки может изменить существующий тег. Типичный пример:

<input type="text" name="email" value="<?php echo $email; ?>">

В этом примере, если $ email равен

" autofocus onfocus="alert(1)

Сработает JavaScript в обработчике события onfocus.

Побег, который вам нужно использовать, зависит от контекста. Мы находимся в JavaScript, или в HTML, или в атрибуте HTML, или в CSS? См. https://www.owasp.org/index.php/XSS_(Cross_Site_Scripting)_Prevention_Cheat_Sheet для получения дополнительной информации о том, как кодировать.

1 голос
/ 24 августа 2011

Правило номер один: никогда не доверяйте пользовательскому вводу.

Ваши предложения великолепны, я бы добавил эти два:

  • addlashes ()
  • mysql_real_escape_string ()(при условии, что вы используете MySQL, есть функции и для других поставщиков)

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

0 голосов
/ 22 июня 2013

Я бы использовал следующее:

$variable = trim(strip_tags(stripslashes($_POST['variablename'])));

ИЛИ

// Clean up the input values 
foreach($_POST as $key => $value) {  
    $_POST[$key] = stripslashes($_POST[$key]); 

    $_POST[$key] = htmlspecialchars(strip_tags($_POST[$key])); 
}

Оба прекрасно работают в соответствии с HTML / PHP.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...