Javascript 如何防止运行脚本
所以一直阻止我发布我想要的标题,所以最终得到了一个让我发布的标题,尽管它有点糟糕,所以请随意编辑/更改它 我有用户可以填写的字段和javascriptJavascript 如何防止运行脚本,javascript,xss,Javascript,Xss,所以一直阻止我发布我想要的标题,所以最终得到了一个让我发布的标题,尽管它有点糟糕,所以请随意编辑/更改它 我有用户可以填写的字段和javascript '${chart.title}' 诸如此类。仅仅去掉单引号字符就足够了,这样他们就不能将其转义回javascript了吗?或者是否有其他方法来结束以单引号字符开头的字符串 ${chart.title}插入用户在上一页中键入的标题,这样他们就可以自然地键入类似“title'+callMethod()+'RestOfTitle”的内容,将call
'${chart.title}'
诸如此类。仅仅去掉单引号字符就足够了,这样他们就不能将其转义回javascript了吗?或者是否有其他方法来结束以单引号字符开头的字符串
${chart.title}插入用户在上一页中键入的标题,这样他们就可以自然地键入类似“title'+callMethod()+'RestOfTitle”的内容,将callMethod注入到我的javascript中
谢谢,
Dean最好的方法是将输入限制为字母数字和空格字符 如果要允许标题中的任何内容,可以使用转义函数。
仅仅剥离单引号字符的字符串显然是不够的。考虑新的线路有一个原因。有两种选择 首先,采用非常严格的方式,为标题输入所谓的字段,并始终对输出到页面的文本进行编码。这将过滤掉所有不需要的(和潜在危险的)字符,并确保如果其中一些字符通过了筛选(或有人在应用筛选后更新文本以包含一些js代码),编码过程将使所有恶意js脚本无法运行(它将其转换为纯文本) 第二,您确实允许用户输入他们想要的内容(这是一种非常不推荐的方式,但有时开发人员要求这样做),但始终对输出到页面的文本进行编码
您可以使用正则表达式自己实现白名单验证,也可以使用其中一个库。是否将输入传递给服务器?如果你是,我相信那将是一个XSS过滤器的地方。