所以我一直在尝试从头开始使用用户/密码表单编写网站。
<html>
<head>
<title>Password Generator</title>
</head>
<body>
<h1>Password Generator</h1>
<h3> Let's start: </h3><h3>
<form action="pwd.php" method="GET">
<table style="width:100px">
<tbody>
<tr>
<td>
<b>Name:</b>
</td>
<td>
<input name="name" value="Name" type="text">
</td>
</tr>
<tr>
<td>
<b>Size: </b>
</td>
<td>
<input min="10" max="1000" name="strength" type="range">
</td>
</tr>
</tbody>
</table>
<table style="width:100%">
<tbody>
<tr>
<td></td>
<td>
<input name"gen"="" value="Generate" type="submit">
</td>
</tr>
</tbody>
</table>
</form>
<img src="pwd.php?name=strength">
</h3>
</body>
</html>
现在我测试了我的网站是否存在XSS漏洞并发现我可以使用表单插入JS,例如:<input name="name" value="Name" onclick="alert('XSS');" type="submit">
我只需要使用Mozilla Inspector稍微更改HTML,我就可以在我的网站上远程执行JS。
我读过我可以使用JS来防止这种情况,但我不明白它是如何工作的。 我的意思是我可以使用Inspector修改JS,那么它将如何工作?
希望有人可以向我解释一下!答案 0 :(得分:0)
如果您只有静态HTML / CSS页面,则不容易受到XSS的攻击。当涉及预处理器(如PHP)时,会出现XSS。
如果您的网页保持原样,则无需担心。
但是,例如,如果您使用的是PHP并且想要显示提交的值,则需要像这样修改页面:
<input name="name" type="text" value="<?php echo $_GET['name']?>" />
这很容易受到XSS攻击!请勿在代码中使用它!
其中一个解决方案是:
<input name="name" type="text" value="<?php echo htmlspecialchars($_GET['name'], ENT_QUOTES, 'UTF-8')?>" />
来自here。