专栏链接

一、数据的校验

  1. SQL注入
  2. 命令注入
  3. 跨站脚本
  4. 任意文件上传
  5. 任意文件下载
  6. 任意文件删除
  7. 任意文件读取与写入
  8. Iframe 框架钓鱼
  9. 负值支付漏洞

二、认证与授权

  1. 密码修改(无需原密码)
  2. 密码策略不足
  3. 用户名密码(敏感信息)明文传输
  4. 验证码可重复利用
  5. 缺少验证码功能
  6. 用户名枚举(用户名和密码单独验证)
  7. 登录尝试次数限制功能失效
  8. 登录后门
  9. 横向越权
  10. 纵向越权

三、Cookie与会话管理

  1. 直接关闭浏览器“退出“系统
  2. 会话标识未更新
  3. Cookie 中明文存储用户名、密码

四、错误处理

  1. 数据库交互中的异常处理

五、日志安全

  1. 日志记录敏感信息

六、未验证的重定向

  1. URL 重定向

认证与授权:缺少验证码功能

漏洞描述:

对登录功能需要一些辅助的安全措施来防护攻击者进行暴力破解系统的帐号、密码。常见的比如在登录页面加入验证码功能。

不合规的代码示例:

<form name='f' action='/login/login.action' method='post'>
	<table width="100 " border="0" cellspacing="0"
	cellpadding="0">
		<tr>
			<th>用户名:</th>
			<td><input type="text" name="textfield" value="" /></td>
		</tr>
		<tr>
			<th width="100px;">&nbsp;&nbsp;&nbsp;&nbsp; 码:</th>
			<td><input type="password" name="password" value=""/></td>
		</tr>
		<tr>
			<td>&nbsp;</td>
			<td><input type="submit" name="Submit2" value=" 登 录" /></td>
		</tr>
	</table>
</form>

合规的代码示例:

<form name='f' action='/login/login.action' method='post'>
	<table width="100 " border="0" cellspacing="0" cellpadding="0">
		<tr>
			<th>用户名:</th>
			<td><input type="text" name="textfield" value="" /></td>
		</tr>
		<tr>
			<th width="100px;">&nbsp;&nbsp;&nbsp;&nbsp; 码:</th>
			<td><input type="password" name="password" value=""/></td>
		</tr>
			<th width="100px;">验证码:</th>
			<td><input type="text" name="safecode" id="safecode" value=""/>
		</td>
		<tr>
			<td>&nbsp;</td>
			<td><input type="submit" name="Submit2" value=" 登 录" /></td>
		</tr>
		<img title="点击刷新验证码" alt="刷新" onmouseover="this.style.cursor='pointer'" id="imageCode" name="imageCode" src="/common/image.jsp" onclick="var s=Math.random();this.src='/common/image.jsp?l='+s;" width="90" height="40" />
	</table>
</form>
Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐