[英]Prevent XSS on client-side (Pure Javascript)
我有一个简单的项目,但令我头疼,因为客户端编程不是我的事情。 基本上我有一个登录页面,客户希望我阻止XSS攻击,不允许用户不在用户名/密码字段上提交恶意代码。 我会很容易在服务器端做,但他们不希望给我们访问。
任何人有机会给我提示我怎么能这样做? 即使很难,我也知道javascript / HTML的基础知识,我的经验几乎无效。
我知道有关于这个主题的几个问题,但是真诚地,我迷失了所有信息
最好的祝福
实际上,您根本无法在客户端进行任何可靠的XSS预防。 攻击者只是禁用JavaScript,并且所有复杂的代码都不存在。 任何客户端验证只是为了方便用户 ,仅此而已。
更新:上面我写的,关于二阶 (也称为存储)XSS是真实的。 可以使用JavaScript缓解一阶 XSS攻击(当攻击者创建伪造的URL时)。
您在客户端上阻止XSS的方式与在服务器上阻止它的方式相同。 (注意,这只能防止在客户端上直接处理的输入,而不是针对提交给服务器然后传递回客户端的代码)。
例如,如果要在div中显示片段ID,您将:
div.appendChild(document.createTextNode(location.hash));
不要只允许将原始输入解析为HTML:
// DANGER
div.innerHTML = location.hash;
当然,这仅保护页面免受提交给客户端代码的数据。
无法使用客户端代码来防止恶意数据被提交到服务器端代码。 客户端可以完全控制客户端代码,因此可以非常轻松地绕过它。
如果您从服务器外部读取输入,然后将其输出到网页,则必须从XSS获得服务器端保护 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.