javascript - 转义所有输入类型的 TEXT 上的所有特殊字符以防止 XSS

标签 javascript jquery plsql special-characters xss

使用 jQuery,根据向用户呈现的页面,在我的整个网站中,我想找到所有输入文本项选择器并转义所有特殊字符,以防止跨站点脚本。

基本上在页面加载或提交时,查找“文本”的所有输入类型,即:

<input type="text" class="datepicker hasDatepicker form-control" id="START_DATE" name="s_date" maxlength="4000" size="30" value="" autocomplete="off">

并使用 jQuery,查找并替换所有特殊字符,例如:

</option<script>alert("XSS")</script>

阻止 XSS。

最佳答案

您不能依赖客户端脚本来防止最初出现在 DOM 上的数据的跨站点脚本。

您无法保证可疑代码不会先于您的代码执行,从而导致其无效。这应该在服务器端完成,但您没有指定语言,所以我无能为力。

如果您通过 AJAX 引入数据并附加到 DOM,则可以执行此操作,但此处似乎并非如此。如果是 AJAX,您不必担心,除非您使用 eval 或类似的。

为了提供一个简单的例子,在此窗口中打开 JS 控制台并输入以下内容

$('input').val("<script>alert('derp');</script>");

您不会收到警报,并且数据会很好地附加到屏幕右上角的搜索元素中。只是为了好玩,你也可以尝试纯 JS:

document.getElementsByTagName('input')[0].value = "<script>alert('test');</script>";

此外,如果您出于某种原因使用未经处理的数据在 DOM 上创建元素 - 您需要确保您不是简单地连接字符串来创建它们,而是通过 JS(又名 no jQuery .html()).

关于javascript - 转义所有输入类型的 TEXT 上的所有特殊字符以防止 XSS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40297844/

相关文章:

javascript - 在react js应用程序上动态地将参数传递给Web服务

jquery - click() jquery 在 IE8 中不起作用

javascript - 多响应 AJAX 请求

string - Oracle PL/SQL 中有分割字符串的函数吗?

javascript - 估算 JavaScript 数组中的缺失值

javascript - nextjs : Warning: Prop `className` did not match. 服务器: "x"客户端: "y"

oracle - 当 PL/SQL 中出现错误时提供更有意义的消息

java - 将 sql 翻译添加到 criteriaBuilder JPQL

javascript - 在两个视差背景之间切换

javascript - 将表导出为 CSV - 将字符串格式问题导出到单独的单元格中