在JavaScript中编码URL以防止XSS

时间:2015-08-05 20:34:17

标签: javascript google-chrome url xss encode

在我的网络应用程序中,URL由JavaScript组成。这是Servlet的URL。 此网址包含< >导致第三方应用程序(SiteMinder)显示XSS警告& URL未加载。

我是Java&网络编程。在网上搜索之后,我开始知道应该使用HTML实体来解决这个问题。

不知道如何做到这一点,我使用JavaScript string replace()函数替换,如下面的代码所示,

txtvar = encodeURIComponent(document.form1.txt1.value);
txtvar = txtvar.replace(/%3C/g,"<");
txtvar = txtvar.replace(/%3E/g,">");
txtvar = txtvar.replace(/'/g,"'");
txtvar = txtvar.replace(/%22/g,""");

它在Internet Explorer中运行良好,但在Chrome& Firefox浏览器。不确定,但我怀疑& URL中的(<>)会导致Chrome& Firefox认为接下来是一个新的键值对&被扯掉了。

Chrome&中是否有任何设置Firefox让它像IE一样工作?我不明白为什么它在Firefox& Chrome在IE中运行良好。

然后我尝试了逃避&在<和>与%26,

txtvar=txtvar.replace(/&/g,"%26");

它允许加载URL但在servlet中我获得的是&lt;&gt;而不是<>。它没有正确解释它们。

对此有任何帮助表示赞赏。

谢谢, Awadhoot

0 个答案:

没有答案