function filter($p){
$i=0;
return str_replace("<","<",str_replace(">",">",str_replace("&","&",$p,$i),$i),$i);
}
Любая идея проходит эту профилактику xss? только моя идея, а не домашняя работаXSS-атака через этот фильтр?
function filter($p){
$i=0;
return str_replace("<","<",str_replace(">",">",str_replace("&","&",$p,$i),$i),$i);
}
Любая идея проходит эту профилактику xss? только моя идея, а не домашняя работаXSS-атака через этот фильтр?
Как поднято в вопросе errata, проблема здесь заключается в том, что вы пытаетесь свернуть свою собственную замену на htmlspecialchars
в PHP. В то время как вы попросили провести обзор кода пятна для определения потенциального XSS exploit, вы на самом деле указали на запах дизайна в своем приложении относительно того, как вы справляетесь с уязвимостями.
В то время как вы можете выполнять итеративный fixups или режим ввода дезинфекцию, как вы, кажется, пытаетесь сделать (примечание this answer about black- and white-lists), вы бы лучше служили чтением this documentation on how to address and mitigate XSS exploits и this additional documentation. Он должен предлагать рекомендации по анализу и перестройке вашего приложения для безопасного и безопасного обращения с этими угрозами, вместо того, чтобы swiss-cheesing стратегии смягчения последствий по нескольким исправлениям в коде.
удачи с приложением!
Никогда не используйте черный список. Всегда используйте белый список. Read for example here о большом количестве различных атак. Мышление-провокация :)
Возможно. Например, если filter
используется в в HTML-тег, например:
<input type="text" value="<?=filter($p)?>">
злоумышленник может выполнить атаку XSS на принуждении $p
в быть что-то вроде:
something" onfocus="javascript:alert('test')
Так вывод HTML становится:
<input type="text" value="something" onfocus="javascript:alert('test')">
Почему бы вам просто не использовать htmlspecialchars()? –
Предположим, что кодер noob и он не знает htmlspecialchar(): D Я не говорю о том, как предотвратить, я хочу знать, как атаковать: D – n0b0dybk
Offtopic - этот сайт не предназначен для просмотра кода. Это то, что для http://codereview.stackexchange.com/. Но, как правило, не сворачивайте свой «код безопасности». Если вы не эксперт, ВСЕГДА будет один или несколько случаев краев, которые ваш код пропустит. –