博客
关于我
DVWA(XSS存储型)
阅读量:663 次
发布时间:2019-03-15

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

XSS(Cross-Site Scripting)是一种常见的Web应用安全漏洞,攻击者通过注入恶意脚本代码到用户的浏览器,破坏用户体验或获取敏感信息。XSS攻击的主要目标是直接在用户端执行恶意代码,因此需要重点关注前端和同源政策的安全性。

XSS基本概念

XSS攻击的核心在于将用户输入直接输出到网页上,而未经过适当的-sanitization。攻击者可以构造特定的输入,导致网站输出危险的scrip标签,如<script>alert('xss')</script>。这一过程通常发生在用户生成内容(UGC)被直接显示,如评论、留言或搜索结果中。

XSS存储型

存储型 XSS 攻击将恶意代码嵌入到服务器端数据库中,随后用户访问该页面时代码被执行。例如,管理员在个人资料页面发布了一段可信的内容,但未进行ATS(含有字符替换),使得用户输入的文本直接嵌入到网页中。这种攻击 vector 常见于博客、新闻网站或论坛系统。为了防守,web 应用需对数据库中存储的内容进行严格的-sanitization。

XSS分类

tây ser·Votes

  • Low: 命名为低层次的XSS,攻击者通常利用简单的<script>标签进行注入。修复方法是对输入参数进行-react,这通常包括使用PHP的-hellip或正则表达式。
  • Medium: 攻击者构造更复杂的<script>标签,如事件触发或动态 JavaScript 代码。修复需要对参数进行更全面的检查,例如检查变量是否为预定义 legitimacy。
  • High: 高层次 XSS 攻击者可能利用与网站相关的 Closure 或其他动态功能构造攻击代码。修复需要结合正则表达式和数据库 sanitized 进行全面保护。
  • XSS攻击防御

    开发者应始终记住,预防 XSS 攻击的关键是对输入数据的严格 sanitized。具体措施包括:

    • 对用户输入使用-hellip或正则表达式进行过滤。
    • 克隆输入数据,并使用 MySQL 的实 sacred_suffix 属性或相关方法。
    • 使用防止 XSS attack 包含/code标签的方式,将输出转换为 HTML 实体。例如,利用PHP的 ht mlEntities 函数将 < 转换为 <。
    • 在反向 proxies 或负载均衡中启用参数过滤,以捕捉异常请求。

    实际案例分析

    假设一个万 слово字符限制的$name输入字段,用户可以输入:<scRipt>alert("xss")</scRipt>前端的关键是限制输入到一定长度,但这并不能完全 mitig ate XSS。完善措施是对输入进行Js总 تنfiere 。例如,使用如下的正则表达式进行 replace:

    $name = preg_replace('/<(.*)s(.*)c(.*)r(.*)i(.*)p(.*)t/i', '', $name);

    这样可以清除 script 标签,同时不影响其他合法字符。

    总结

    XSS 是 Web 安全中的常见 vulnerability,严重威胁用户数据和系统安全。通过对输入数据进行合理的 sanitized 和防护,可以有效防守 XSS 攻击。开发平方应结合目标平台的特性,选择最合适的防护方法,确保输入的安全性和系统的稳定性。

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

    你可能感兴趣的文章
    MySQL压缩包方式安装,傻瓜式教学
    查看>>
    MySQL原理、设计与应用全面解析
    查看>>
    MySQL原理简介—1.SQL的执行流程
    查看>>
    MySQL参数调优详解
    查看>>
    mysql参考触发条件_MySQL 5.0-触发器(参考)_mysql
    查看>>
    MySQL及navicat for mysql中文乱码
    查看>>
    MySqL双机热备份(二)--MysqL主-主复制实现
    查看>>
    MySQL各个版本区别及问题总结
    查看>>
    MySql各种查询
    查看>>
    mysql同主机下 复制一个数据库所有文件到另一个数据库
    查看>>
    mysql启动以后会自动关闭_驾照虽然是C1,一直是开自动挡的车,会不会以后就不会开手动了?...
    查看>>
    mysql启动和关闭外键约束的方法(FOREIGN_KEY_CHECKS)
    查看>>
    Mysql启动失败解决过程
    查看>>
    MySQL启动失败:Can't start server: Bind on TCP/IP port
    查看>>
    mysql启动报错
    查看>>
    mysql启动报错The server quit without updating PID file几种解决办法
    查看>>
    MySQL命令行登陆,远程登陆MySQL
    查看>>
    mysql命令:set sql_log_bin=on/off
    查看>>
    mySQL和Hive的区别
    查看>>
    MySQL和Java数据类型对应
    查看>>