我们有一个使用asp.net
开发的.net framework 4.0
应用程序,我们的表单可以说dataentry.aspx
,其中用户在textbox
中输入值,该值将存储在数据库中。我们实现了数据库连接逻辑以及后面的代码。一切都很好。
在测试测试人员时,使用提琴手并附加javascript
或html
有效载荷,这些有效载荷已保存在数据库中,并发出警报,提示正在UI
上提取并显示该有效载荷
让我们说用户在textbox
中输入了欢迎词,但是在提琴手中,我们像这样添加了脚本有效载荷
welcome %uff1cscript%uff1ealert(XSS);%uff1c/script%uff1e
所以我们要做的是,在将其保存到textbox
之前,我们正在对上面的有效载荷进行编码并将其保存到database
中。在显示时,我们正在解码它并在UI上显示它。
因此,在UI中,它显示welcome<script>alert(xss)</script>
,并且由于我们正在进行编码和解码,因此未显示任何警报。
但是我们不想显示注入的值。
我们有一些问题:
如果提琴手修改了请求,是否可以放弃该请求?如果是,我们如何检查请求有效载荷是否被修改?
如果脚本负载和实际负载一起注入,我们希望将其重定向到错误页面,因为我们不想将其保存在数据库中。
是否可以在后面的代码中验证注入是否发生。
我们如何检查文本是否包含html
和javascript
。是否有任何正则表达式可用于验证文本是否为javascipt
或html