提问人:duje.je 提问时间:11/4/2022 最后编辑:imvain2duje.je 更新时间:11/4/2022 访问量:1139
如何仅在提交的一个特定用户输入上使用 DOMPurify?
How to use DOMPurify just on one specific user input filed?
问:
我需要演示 XSS 攻击以及如何防止它。我制作了一个简单的网络应用程序,询问用户他的名字和姓氏,并将“欢迎”与他的名字和姓氏一起打印出来。在使用 DOMPurify 防止 XSS 攻击之前,我能够在输入字段中编写脚本,并且 XSS 攻击成功。最后,我想做的是能够从姓名输入字段执行攻击并防止来自姓氏输入字段的攻击。这是我的代码:
function cleanData(userInput){
return DOMPurify.sanitize(userInput);
}
function myFunction() {
let name = document.querySelector("#name");
let surname = document.querySelector("#surname");
let message = document.querySelector("#message");
const profileData = userInput(
$(surname)
);
message.innerHTML = "Welcome " + name.value + surname.value;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/dompurify/2.4.0/purify.min.js"></script>
<h1>Hi! What's your name?</h1>
<input type="text" id="name" placeholder="name ...not sanitized " />
<input
type="text"
id="surname"
placeholder="surname ...sanitized "
/>
<br />
<br />
<button onclick="myFunction()">Submit</button>
<h1 id="message"></h1>
我会说我未能仅在姓氏输入字段上使用 DOMPurify,并且不知道如何解决。
答:
0赞
Ibrahim Sharaf
11/4/2022
#1
传递给surname
cleanData
function cleanData(userInput){
return DOMPurify.sanitize(userInput);
}
function myFunction() {
let name = document.querySelector("#name");
let surname = document.querySelector("#surname");
message.innerHTML = "Welcome " + name.value + cleanData(surname.value);
}
评论