网站服务器地址查询,中企动力邮箱企业版,网站title如何写,wap版Web项目比较常见的安全问题
1.XSS(CrossSite Script)跨站脚本攻击
XSS(CrossSite Script)跨站脚本攻击。它指的是恶意攻击者往Web 页面里插入恶意html代码#xff0c;当用户浏览该页之时#xff0c;嵌入其中Web 里面的html 代码会被执行#xff0c;从而达到恶意用户的特殊… Web项目比较常见的安全问题
1.XSS(CrossSite Script)跨站脚本攻击
XSS(CrossSite Script)跨站脚本攻击。它指的是恶意攻击者往Web 页面里插入恶意html代码当用户浏览该页之时嵌入其中Web 里面的html 代码会被执行从而达到恶意用户的特殊目的。
测试方法在数据输入界面添加记录输入添加成功如果弹出对话框表明此处存在一个XSS 漏洞。或把url请求中参数改为如果页面弹出对话框表明此处存在一个XSS 漏洞
修改建议过滤掉用户输入中的危险字符。对输入数据进行客户端和程序级的校验如通过正则表达式等。Eg:对用户输入的地方和变量有没有做长度和对””,””,”;”,”’”等字符是否做过滤
2.CSRF与跨站脚本(XSS)
CSRF与跨站脚本(XSS)是指请求迫使某个登录的浏览器向易受攻击的Web应用发送一个请求然后以受害者的名义为入侵者的利益进行所选择的行动。
测试方法同个浏览器打开两个页面一个页面权限失效后另一个页面是否可操作成功使用工具发送请求在http请求头中不加入referer字段检验返回消息的应答应该重新定位到错误界面或者登陆界面。
修改建议在不同的会话中两次发送同一请求并且收到相同的响应。这显示没有任何参数是动态的会话标识仅在cookie 中发送因此应用程序易受到此问题攻击。因此解决的方法为
1 Cookie Hashing(所有表单都包含同一个伪随机值)
2 验证码
3 One‐Time Tokens(不同的表单包含一个不同的伪随机值)客户端保护措施应用防止CSRF攻击的工具或插件。
3.注入测试
SQL注入是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串最终达到欺骗服务器执行恶意的SQL命令。
测试方法在需要进行查询的页面输入正确查询条件 and 11等简单sql语句查看应答结果如与输入正确查询条件返回结果一致表明应用程序对用户输入未进行过滤可以初步判断此处存在SQL注入漏洞
修改建议对用户的输入进行校验可以通过正则表达式或限制长度对以下关键字进行转换等;
|alert|and|exec|execute|insert|select|delete|update|count|drop|chr|mid|master|truncate|declare|sitename|netuser|xp_cmdshell|or||,|like’|and|exec|execute|insert|create|drop|table|from|grant|group_concat|column_name|information_schema.columns|table_schema|union|where|select|delete|update|order|by|count|chr|mid|master|truncate|declare|or|–||,|like|//
不要使用动态拼装sql可以使用参数化的sql或者直接使用存储过程进行数据查询存取;
不要使用管理员权限的数据库连接为每个应用使用单独的权限有限的数据库连接;
应用的异常信息应该给出尽可能少的提示最好使用自定义的错误信息对原始错误信息进行包装。
4.登录认证测试
4.1暴力破解
暴力破解是目前最直接有效的攻击方式特别对于金融业务来说很多情况下口令都为6位纯数字很容易被攻击。本测试项在于检查认证系统对暴力破解的防护性。
测试方法 启动抓包工具同时打开浏览器输入用户登录页面输入用户名、密码以及验证码进行登录如果在抓包中存在明文的用户名和密码说明存在弱点。
修改建议将请求方式从HTTP方式修改为HTTPS方式或者对输入的用户名和密码进行加密在服务端对密码进行验证
4.2代码注释
开发版本的Web程序所带有的注释在发布版本中没有被去掉而导致一些敏感信息的泄漏。我们要查看客户端能看到的页面源代码并发现此类安全隐患。
测试方法打开登陆页面(或者待测试页面)点击浏览器邮件查看源代码检查源代码注释部分是否有敏感信息泄露敏感信息包括以下内容字段文字描述、内网 IP 地址、SQL 语句以及物理路径等等。
修改建议请勿在HTML 注释中遗留任何重要信息如文件名或文件路径。
从生产站点注释中除去以前或未来站点链接的跟踪信息。避免在HTML 注释中放置敏感信息。确保HTML 注释不包括源代码片段。
4.3 用户名破解
为了进行暴力破解攻击者需要知道已存在的用户名再对该用户名进行攻击。
测试方法在登录界面输入不存在的用户名和任意的口令如果提示用户名不存在则说明存在漏洞使用正确的用户名和错误的口令进行登录如果提示口令或密码错误则说明存在漏洞。
修改建议服务器对所有的登陆错误原因进行统一的应答不会提示准确的错误提示信息。
4.4默认账户名称设置
一般系统均设有默认登录用户以及超级管理员账号如登录账号过于简单将易被破解造成超级权限泄露。
修改建议上线系统清除超级管理员权限用户或增加超级管理员登录名复杂度不要设置成易猜测的admin、superadmin等名称。
4.5 错误的页面信息
404、500等错误或警告消息可能会泄露敏感信息。
修改建议捕获异常跳转至统一错误页面避免对外泄漏详细错误信息。
5.会话管理测试未更新
5.1会话标识测试
查看登录成功后会话标识是否变更。如果未变更那么攻击者就可以通过一些手段如构造URL为受害着确定一个会话标识当受害者登录成功后攻击者也可以利用这个会话标识冒充受害者访问系统。
测试方法启动抓包工具或浏览器自带开发者模式打开登录页面输入正确的用户名、口令以及验证码进行登录登录后进行任意一项业务操作。如果登录的SessionId和进行业务的SessionId没有变化则说明存在漏洞。
修改建议对每次请求都从上次请求获得令牌服务端对每次交互都进行验证
查看是否存在浏览器窗口闲置超时后需重新登录的机制
5.2会话清除测试
用户注销后会话信息需要清除否则会导致用户在点击注销按钮之后还能继续访问注销之前才能访问的页面。
测试方法进入登录页面输入正确的用户名和密码登录成功后进行一些业务操作点击注销按钮在浏览器输入地址输入上面进行业务操作的地址如果能够正常返回业务页面则说明存在漏洞。
修改建议在用户注销后必须将用户的Session信息以及缓存信息全部清空。
最后感谢每一个认真阅读我文章的人礼尚往来总是要有的这些资料对于【软件测试】的朋友来说应该是最全面最完整的备战仓库虽然不是什么很值钱的东西如果你用得到的话可以直接拿走 这些资料对于【软件测试】的朋友来说应该是最全面最完整的备战仓库这个仓库也陪伴上万个测试工程师们走过最艰难的路程希望也能帮助到你