检查用户输入是否包含带有 javascript 的 <script> 标签。意外的标记 {
checking if user input includes a <script> tag with javascript. Unexpected token {
<!DOCTYPE html>
<html>
<head>
<script>
function XSSPrevent(){
var usercomments = document.getElementById('usertext').value;
if(usercomments.contains("<script>"){
alert("Failed");
} else
alert("Thank you for your comments" + usercomments);
}
</script>
</head>
<body>
<form>
<input type="text" id="usertext" maxlength=50/>
<input type="submit" value="Enter" onclick="XSSPrevent()"/>
</form>
</body>
这是我第一次同时使用 HTML 表单和 javascript。控制台
在 if 循环后显示意外标记 {。怎么了?
我知道在这种情况下使用警报方法不是一个好主意,但我
只想快速检查我的功能。
您缺少括号:
function XSSPrevent(){
var usercomments = document.getElementById('usertext').value;
if(usercomments.contains("<script>")){ // <-- was missing ) here
alert("Failed");
} else
alert("Thank you for your comments" + usercomments);
}
TL;DR: 前端代码只是为了制作东西 pretty/user-friendly 并为按预期使用它的人提供更好的体验。后端(即用户无法更改的部分)是处理安全性的唯一方法。
由于有人已经解决了肤浅的答案(即如何解决您现有的问题以不抛出错误),在我看来更重要的事情是强调为什么,或者更确切地说为什么不这样做。
JavaScript是前端,也就是说可以禁用甚至修改!他们可以删除您的那行代码并不受阻碍地继续进行。
想出一个后端解决方案。如果您正在处理表单,则有某种后端,它们都有检查和处理错误输入的方法。学习如何,这是值得的,而且大部分都不难。
在前端有一个功能是有意义的另外 - 如果你认为有人可能希望被允许插入脚本标签...... - 在这种情况下,您可以拥有一个功能(使用不同的名称以避免混淆),出于友好的用户体验目的,告诉他们不允许插入脚本标签。虽然我从未见过这种用例。
<!DOCTYPE html>
<html>
<head>
<script>
function XSSPrevent(){
var usercomments = document.getElementById('usertext').value;
if(usercomments.contains("<script>"){
alert("Failed");
} else
alert("Thank you for your comments" + usercomments);
}
</script>
</head>
<body>
<form>
<input type="text" id="usertext" maxlength=50/>
<input type="submit" value="Enter" onclick="XSSPrevent()"/>
</form>
</body>
这是我第一次同时使用 HTML 表单和 javascript。控制台
在 if 循环后显示意外标记 {。怎么了?
我知道在这种情况下使用警报方法不是一个好主意,但我
只想快速检查我的功能。
您缺少括号:
function XSSPrevent(){
var usercomments = document.getElementById('usertext').value;
if(usercomments.contains("<script>")){ // <-- was missing ) here
alert("Failed");
} else
alert("Thank you for your comments" + usercomments);
}
TL;DR: 前端代码只是为了制作东西 pretty/user-friendly 并为按预期使用它的人提供更好的体验。后端(即用户无法更改的部分)是处理安全性的唯一方法。
由于有人已经解决了肤浅的答案(即如何解决您现有的问题以不抛出错误),在我看来更重要的事情是强调为什么,或者更确切地说为什么不这样做。
JavaScript是前端,也就是说可以禁用甚至修改!他们可以删除您的那行代码并不受阻碍地继续进行。
想出一个后端解决方案。如果您正在处理表单,则有某种后端,它们都有检查和处理错误输入的方法。学习如何,这是值得的,而且大部分都不难。
在前端有一个功能是有意义的另外 - 如果你认为有人可能希望被允许插入脚本标签...... - 在这种情况下,您可以拥有一个功能(使用不同的名称以避免混淆),出于友好的用户体验目的,告诉他们不允许插入脚本标签。虽然我从未见过这种用例。