JavaScript-js中如何检查用户输入以增强安全性?

WP主题Bug提交 WP主题Bug提交 主题:1067 回复:2226

JavaScript-js中如何检查用户输入以增强安全性?

清晨说ぺ晚安 发布于 2017-03-07 字数 111 浏览 1200 回复 2

具体来说,一个搜索框,下面显示结果的时候会把用户输入的关键词显示出来。

$("#input_box").val()

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

支持 Markdown 语法,需要帮助?

评论(2

瑾兮 2017-04-26 2 楼

跨站脚本攻击,如果本身不允许用户填写HTML代码,则一般做法是替换"<"为"&lt;",">"为"&gt;"
如果允许用户填写HTML,则一般检查敏感标签例如<script><link>之类的,但实际情况还需要检查标签关闭等问题(如仅写一个<a>开头却不写</a>结束),较为复杂

归属感 2017-04-24 1 楼

如果是提就到后台,回显的时候需要对用户输入的内容进行实体化转换(如php的htmlspecialchars()函数);

而对于js直接将用户输入的内容插入到页面当中应该使用text(); 例如:

 $('#box').text("<script>alert('test');</script>")

将内容仅当文本,而非html。当然也可以将内容先替换,或者有选择的替换。

 $('#box').html($('#input_box').val().replace(/[<>]/g,function($1){
return $1 == '<' ? '&lt;' : '&gt;';
}));