Kar*_*lth 14 javascript security xss
我想知道检查和删除"<script"文本输入字段是否足以阻止javascript代码注入攻击?
这还取决于您对输入的处理方式.这是我在一些贺卡服务的真实网站上找到的简化示例:
它包含一个选择字段,您可以使用该字段选择文本的颜色:
<select name="color">
<option value="red">Red</option>
<option value="green">Green</option>
<option value="blue">Blue</option>
</select>
Run Code Online (Sandbox Code Playgroud)
该值在贺卡页面上未经过滤使用.因此很容易篡改发送的POST数据并进行更改
color=red
Run Code Online (Sandbox Code Playgroud)
喜欢的东西
color=red%22+onload%3D%22alert(%27foo%27)
Run Code Online (Sandbox Code Playgroud)
这将导致
<font color="red" onload="alert('foo')">
Run Code Online (Sandbox Code Playgroud)
而不是<font color="red">.
因此,重点是永远不要相信来自用户的任何输入,甚至不是您定义的预定义值.
不幸的是,并非如此,有多种攻击可用,例如<img>也可以通过元素执行 JavaScript。我建议您在服务器端的任何平台上使用 XSS 库。
这是我的意思的一个例子:
<img src="javascript:alert('hi');">
<input type="image" src="javascript:alert('hi');">
Run Code Online (Sandbox Code Playgroud)
...并非这些示例本身是无害的,但您会看到还有其他方法可以执行 JavaScript。哪些漏洞有效取决于浏览器,但请注意还有其他方法。