Essential PHP Security -PHP安全基础

7.2. 密码嗅探

Top  Previous  Next

7.2. 密码嗅探

  尽管攻击者通过嗅探(察看)你的用户和应用间的网络通信并不专门用于访问控制,但要意识到数据暴露变得越来越重要,特别是对于验证信息。

 

使用SSL可以有效地防止HTTP请求和回应不被暴露。对任何使用https方案的资源的请求可以防止密码嗅探。最好的方法是一直使用SSL来发送验证信息,同时你可能还想用SSL来传送所有的包含会话标识的请求以防止会话劫持。

  为防止用户验证信息不致暴露,在表单的action属性的URL中使用https方案如下:

CODE:

 

  <form action="https://example.org/login.php" method="POST">

  <p>Username: <input type="text" name="username" /></p>

  <p>Password: <input type="password" name="password" /></p>

  <p><input type="submit" /></p>

  </form>

高度推荐在验证表单中使用POST方法,这是因为无论是否你使用了SSL,这样做与GET方法相比,验证信息较少暴露。

  尽管这样做只是为了保护用户的验证信息不被暴露,但你还是应该同时对HTML表单使用SSL。这样做不是出于技术上的原因,但是用户在看到表单被SSL所保护时,在输入验证信息时会感觉更为舒坦(见图7-1)。

 

图 7-1. 大多数浏览器在当前资源被SSL所保护时会显示一个锁形图标