繁体   English   中英

修复跨站点脚本问题

[英]Fix cross site scripting issue

我遇到了跨站点脚本问题(由其中一种工具报告),我的屏幕上有一个带有多个字段的表单。 现在,如果用户为字段1之一输入<script>alert("1")</script>标记,浏览器将显示值为1的弹出窗口。

如果用户在字段1中输入<html>testString</html> or <script>alert("1")</script> ,则会以编码形式发送给服务器,并以正确的编码形式返回给服务器,但是如果用户没有这样做修改包含这些标签的字段1,但更新其他字段(如字段2、3),因为字段1被发送到未编码的服务器时被弄乱了。

如何解决此问题? 是否有解决此类问题的标准方法?

我也使用Java资源发布表单值吗? 那么是否对相同内容也有任何更改?

为此,您必须将“ <”之类的字符替换为其对应的html实体等效项,例如“&lt”。 最好在服务器端执行此操作,因为客户端验证可能会被用户阻止。 在javascript中,我们可以这样做。

document.write(htmlentities("<script>"));

function htmlentities(str) {
    var ret = str.replace(/[\u00A0-\u9999<>\&]/gim, function(i) {
       return '&#'+i.charCodeAt(0)+';';
    });
    return ret;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM