如何在输入文本框中禁用js ?



我有输入类型文本,当在输入字段<script> alert (1) </script>中编写js时,它可以工作,是否可以在输入中禁用js ?由于

<form action="" name="typing_and_press_form"  id="typing_and_press_form">
<input id='typing_and_press' class="typing_and_press" type="text"
placeholder="<?php if($jobStrings)  echo $jobStrings['keyword_search']; ?>">
<div class="tagsgroupkeyup"></div>
</form>

jquery:

jQuery('#typing_and_press_form').on('submit', function (event) {
event.preventDefault();
if (jQuery('#typing_and_press').val()){
var enteredValue = jQuery('#typing_and_press').val();
jQuery('.typing-press .tagsgroupkeyup').append('<div class="tagstyle"><span>' + enteredValue + '</span><span id="' + enteredValue + '" class="remove">X</span></div>');
jQuery('#typing_and_press').val('');
jQuery('#typing_and_press').text('');
}
})

这就是所谓的自我xss攻击。其中输入被反射到页面上,并执行javascript。为了防止这种情况,你必须使用innerText,或者你也可以在将输入文本显示到DOM之前,通过检查输入中是否有任何javascript来解析输入文本。

在Jquery中,你可以使用.text()方法。

Javascript部分是:

jQuery('#typing_and_press_form').on('submit', function (event) {
event.preventDefault();
if(jQuery('#typing_and_press').val()){
var enteredValue = jQuery('#typing_and_press').val();
spanElem = jQuery('.tagsgroupkeyup').append('<div class="tagstyle"><span></span><span id="' + enteredValue + '" class="remove">X</span></div>');
spanElem.find("span:first").text(enteredValue)
jQuery('#typing_and_press').val('');
jQuery('#typing_and_press').text('');
}
})

相关内容

  • 没有找到相关文章

最新更新