跨站点脚本问题

时间:2013-01-29 10:05:18

标签: php xss

现在我试图过滤所有变量以保护我的网站免受xss的攻击。 我在这里和那里读了一些东西,对我而言,最好的方法就是将我需要的所有字符列入白名单 对于我使用的数字

$adrnr = preg_replace("/[^0-9]/", "", $adrnr);

但是,如果谈到单词我自德语以来就有问题我需要将ü,ä,ö和ß列入白名单吗?

2 个答案:

答案 0 :(得分:1)

虽然您可以(甚至应该)过滤/转换/验证您的输入,但必须为您的输出执行XSS预防,因为您需要做的是基于上下文。 htmlspecialchars()可以将您保存在输出中的很多位置,但不是全部。请参阅OWASP XSS Prevention Cheat Sheet

对于德语名称的输入验证,您可以使用:

preg_match('/^[a-zA-ZäöüßÄÖÜ ]+$/', $nachname)

答案 1 :(得分:0)

您只需使用htmlspecialchars来转义HTML字符。