博客
关于我
【DVWA1.10】Stored Cross Site Scripting (XSS)通关笔记
阅读量:744 次
发布时间:2019-03-22

本文共 999 字,大约阅读时间需要 3 分钟。

最佳实践 - 安全评估与防御机制优化

1. 隐蔽性测试 - 隐蔽型注入回应机制

在前面的分析中,针对三个不同难度级别的防护机制进行了深入测试,最终发现了一个关键的安全漏洞:尽管message字段经过了多重过滤处理,但name字段仅去除了部分脚本标签,存在潜在的XSS安全隐患。

2. 改进方案 - 输入长度扩展与有效性检查

  • 长度控制: 原本name字段的maxlength设置为10,不仅限制了用户输入的真实需求,也导致了潜在的剪切损害。扩展到maxlength="999"更有利于正常用户输入,而不会触发数据溢出预警。

  • 有效性检查: 在提交前对name字段进行过滤,确保仅允许字母、数字和某些允许字符(如-_),防止恶意输入破坏数据库结构。

3. 改进后的安全防护机制

  • message字段:继续使用mysqli_real_escape_stringhtmlspecialchars双重过滤,确保输入中的特殊字符不会导致SQL注入或 XSS攻击。

  • name字段:采用更精准的正则表达式/[^a-zA-Z0-9_-]/,过滤掉所有不符合要求的字符,确保输入的安全性。同时,继续使用mysqli_real_escape_string对输入数据进行最终处理。

4. 防护效果验证

通过手动注入测试,发现即便修改了maxlength和过滤规则,仍然可以通过<script><img>的原始HTML标签触发XSS攻击。这表明需要采取更为全面的防护措施,包括但不限于:

  • csrf token验证: 在提交数据前后增加AntiForgeryToken,防止跨站请求伪造攻击。

  • 数据验证: 利用JavaScript验证name字段的输入合法性,阻止恶意用户输入破坏数据库。

5. 整体架构优化建议

  • 数据库连接管理: 固体使用mysqli连接,而不是频繁打开关闭数据库连接,以减少资源消耗和潜在的连接泄漏风险。

  • 错误处理: 可以采用自定义错误志gers,避免直接输出数据库错误信息,减少攻击可感知信息’.

  • 日志审计: 记录所有数据库操作和用户行为,帮助及时发现异常访问。

6. SSL/TLS部署

确保web应用程序和数据库使用SSL/TLS加密通信,防止数据在传输过程中被窃取或篡改。

7. 定期Security审计

每月至少进行一次全面的安全审计,包括代码审查、测试应ROTO技被然,确保防护机制的有效性。

转载地址:http://uvbwk.baihongyu.com/

你可能感兴趣的文章
Objective-C实现图像灰度变换(附完整源码)
查看>>
Objective-C实现图像相似度平均值哈希算法(附完整源码)
查看>>
Objective-C实现图像移动(附完整源码)
查看>>
Objective-C实现图层混合算法(附完整源码)
查看>>
Objective-C实现图片dilation operation扩张操作算法(附完整源码)
查看>>
Objective-C实现图片erosion operation侵蚀操作算法(附完整源码)
查看>>
Objective-C实现图片的放大缩小(附完整源码)
查看>>
Objective-C实现图片腐蚀(附完整源码)
查看>>
Objective-C实现图片膨胀(附完整源码)
查看>>
Objective-C实现图的邻接矩阵(附完整源码)
查看>>
Objective-C实现圆球的表面积和体积(附完整源码)
查看>>
Objective-C实现在Regex的帮助下检查字谜算法(附完整源码)
查看>>
Objective-C实现在指定区间 [a, b] 中找到函数的实根,其中 f(a)*f(b) < 0算法(附完整源码)
查看>>
Objective-C实现均值滤波(附完整源码)
查看>>
Objective-C实现埃拉托斯特尼筛法算法(附完整源码)
查看>>
Objective-C实现域名解析(附完整源码)
查看>>
Objective-C实现域名转IP(附完整源码)
查看>>
Objective-C实现培根密码算法(附完整源码)
查看>>
Objective-C实现基于 LIFO的堆栈算法(附完整源码)
查看>>
Objective-C实现基于 LinkedList 的添加两个数字的解决方案算法(附完整源码)
查看>>