相关疑难解决方法(0)

处理安全性的最佳方法,并避免使用用户输入的URL进行XSS

我们有一个高安全性应用程序,我们希望允许用户输入其他用户将看到的URL.

这引入了XSS黑客的高风险 - 用户可能会输入另一个用户最终执行的javascript.由于我们持有敏感数据,因此必须永远不会发生这种情况.

处理这个问题的最佳做法是什么?单独的安全白名单或转义模式是否足够好?

有关处理重定向的任何建议(例如,在关注链接之前,警告页面上的"此链接在我们的网站之外"消息)

有没有支持用户输入链接的论据?


澄清:

基本上我们的用户想要输入:

stackoverflow.com

并将其输出给另一个用户:

<a href="http://stackoverflow.com">stackoverflow.com</a>
Run Code Online (Sandbox Code Playgroud)

我真正担心的是他们在XSS黑客中使用它.即他们输入:

警报( '砍死!');

所以其他用户获得此链接:

<a href="alert('hacked!');">stackoverflow.com</a>
Run Code Online (Sandbox Code Playgroud)

我的例子只是解释风险 - 我很清楚javascript和URL是不同的东西,但通过让他们输入后者,他们可能能够执行前者.

你会惊讶于你可以用这个技巧打破多少网站 - HTML更糟糕.如果他们知道处理环节上做到他们也知道消毒<iframe>,<img>并巧妙的CSS参考?

我在高安全性环境中工作 - 单个XSS黑客可能会给我们造成很大的损失.我很高兴我可以制作一个正则表达式(或使用迄今为止的一个很​​好的建议),可以排除我能想到的一切,但这还够吗?

security xss url html-sanitizing

54
推荐指数
3
解决办法
4万
查看次数

筛选输入网址的最佳方法是什么?

我有一个表单接受来自PHP用户的URL.

我应该允许或禁止哪些角色?目前我用

$ input = preg_replace("/ [^ a-zA-Z0-9 - \?:#.()\,/ \&\'\\"] /","",$ string);

$输入= SUBSTR($输入,0255);

因此,它被修剪为255个字符,只能包含字母,数字和? - _:#(),&'"/

我应该剥离的任何东西,我不是,或者我正在剥离的东西,可能需要在一个有效的URL?

xss url parsing input filter

3
推荐指数
1
解决办法
828
查看次数

标签 统计

url ×2

xss ×2

filter ×1

html-sanitizing ×1

input ×1

parsing ×1

security ×1