sTg*_*sTg 2 javascript validation antisamy
我有一个要求,在那里我有防止用户输入=的textbox在整个应用程序以防止漏洞。
<input type="text"></input>
Run Code Online (Sandbox Code Playgroud)
我一直在使用它antisamy-1.4.4.xml,XSSFilter.java它负责很多漏洞检查,但不检查'='输入的符号textbox。无论如何我可以为整个应用程序完成的文本框做些什么?
您可以将侦听器附加到input文档中的元素,检查用户是否按下了=键,如果按下,则采取行动。
这样的事情应该工作:
const textInput = document.querySelector('input');
textInput.addEventListener("keydown", function(event) {
if (event.keyCode === 187) {
console.log("equals pressed");
// Prevent default behaviour
event.preventDefault();
return false;
}
});Run Code Online (Sandbox Code Playgroud)
<input type="text"></input>Run Code Online (Sandbox Code Playgroud)
但我不会认为这是“安全的”,因为用户可以在他们的浏览器中覆盖 JS 行为。您仍然应该清理服务器端的输入。
更新
要处理用户将某些内容粘贴到input字段中的情况,您可以截取粘贴的字符串并去除非法字符(在这种情况下为等号)。
例子:
textInput.onpaste = function(e) {
e.preventDefault();
clipboardData = e.clipboardData;
pastedData = clipboardData.getData('Text');
textInput.value = pastedData.replace("=", "");
}
Run Code Online (Sandbox Code Playgroud)
或者您可以e.preventDefault()完全禁用粘贴。
| 归档时间: |
|
| 查看次数: |
777 次 |
| 最近记录: |