密码嗅探

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

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

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

<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所保护时,在输入验证信息时会感觉更为舒坦。

重播攻击

重播攻击,有时称为演示攻击,即攻击者重现以前合法用户向服务器所发送的数据以获取访问权或其它分配给该用户的权限。

与密码嗅探一样,防止重播攻击也需要你意识到数据的暴露。为防止重播攻击,你需要加大攻击者获取任何用于取得受限资源的访问权限的数据的难度。这主要要求做到避免以下做法:

设定受保护资源永久访问权的数据的使用;

设定受保护资源访问权的数据的暴露(甚至是只提供临时访问权的数据);

这样,你应该只使用设定受保护资源临时访问权的数据,同时你还要尽力避免该数据泄露。这些虽只是一般的指导原则,但它们能为你的运作机制提供指导。

第一个原则据我所知,违反它的频率已达到了令人恐怖的程度。很多开发人员只注意保护敏感数据暴露,而忽视了用于设定受保护资源永久访问权的数据在使用时引发的风险。

例如,考虑一下用本地脚本计算验证表单密码的hash值的情况。这样密码的明文不会暴露,暴露的只是它的hash值。这就保护了用户的原始密码。这个流程的主要问题是重播漏洞依然如故——攻击者可以简单的重播一次合法的验证过程即可通过验证,只要用户密码是一致的,验证过程就会成功。

更安全的运行方案、MD5的JavaScript源文件以及其它算法,请看http://pajhome.org.uk/crypt/md5/。

类似于对第一原则的违反是指定一个cookie以提供对某一资源的永久访问权。例如,请考虑下面的通过设定cookie运行的一个永久访问机制的尝试:

<?php
$auth = $username . md5($password);
setcookie('auth', $cookie);
?>  

如果一个未验证用户提供了一个验证cookie,程序会检查在cookie中的密码的hash值与存在数据库中的密码的hash是否匹配。如果匹配,则用户验证通过。
本流程中的问题是该验证cookie的暴露是一个非常大的风险。如果它被捕获的话,攻击者就获得了永久访问权。尽管合法用户的cookie可能会过期,但攻击者可以每次都提供cookie以供验证。
一个更好的永久登录方案是只使用设定临时访问权的数据,后面会介绍到。

PHP安全编程之密码嗅探与重播攻击相关推荐

  1. 密码嗅探、中间人攻击

    密码嗅探 DNS欺骗代理 - dnschef --fakeip=1.1.1.10 -- fakedomains=www.google.com,www.youtube.com --interface 1 ...

  2. 使用 Mitmdump 与 Python 脚本进行密码嗅探

    很久没有写文章了,一是没空,二是几乎忘了还有这回事.这篇应该是年前的最后一发吧!那么今天就来聊一聊我最近关于网络抓包的一些实践(其实我对网络安全领域知之甚少).当然,大家最熟知的工具可能是 Wires ...

  3. 密码嗅探工具dsniff

    密码嗅探工具dsniff 网络大量的服务都使用密码方式对使用者身份进行认证.如果使用非加密的方式传输,一旦数据被截获,就容易被嗅探到.Kali Linux预置了一款专用的密码嗅探工具dsniff.该工 ...

  4. [源码]python Scapy Ftp密码嗅探

    [源码]python Scapy Ftp密码嗅探 原理很简单,FTP密码明文传输的 截取tcp 21端口User和Pass数据即可 Scapy框架编译程序较大(一个空程序都25M),所以就不提供exe ...

  5. php 安全基础 第七章 验证与授权 密码嗅探

    7.2. 密码嗅探 尽管攻击者通过嗅探(察看)你的用户和应用间的网络通信并不专门用于访问控制,但要意识到数据暴露变得越来越重要,特别是对于验证信息. 使用SSL可以有效地防止HTTP请求和回应不被暴露 ...

  6. php嗅探木马,PHP安全-密码嗅探

    密码嗅探 尽管攻击者通过嗅探(察看)你的用户和应用间的网络通信并不专门用于访问控制,但要意识到数据暴露变得越来越重要,特别是对于验证信息. 使用SSL可以有效地防止HTTP请求和回应不被暴露.对任何使 ...

  7. 即第一个字母变成第26个字母,第i个字母变成第(26-i+1)个字母,非字母字符不变。要求编程将密码译回原文,并打印出密码和原文。

    #include <stdio.h> #include <stdlib.h> #include <string.h>int main() {char s[50];p ...

  8. 【安全牛学习笔记】密码嗅探

    密码嗅探 二.三层地址 - IP网络到网络 - MAC主机到主机 交换机与HUB - HUB全端口转发 - 交换机根据学习地址转发 - 混杂模式抓包 [课外拓展]局域网密码嗅探器,只需在自己的电脑上运 ...

  9. 论坛IP地址追踪路由器密码嗅探

    一.论坛IP地址查询 1.任何应用程序部可以调用一个标准的库函数来查看给定名称的主机IP地址.类似地,系统还提供一个逆函致-给定主机的IP地址,查看它所对应的主机名.大多数使用主机名作为参数的应用程序 ...

最新文章

  1. 帝国cms7.5电脑端手机端多终端解决方案之选择哪种方案
  2. XebiaLabs DevOps平台推出软件发布风险和合规性管理功能
  3. AAAIT学院JDK15新特性历史
  4. matlab机械臂工作空间代码_【ROS-Moveit!】机械臂控制探索(3)——基于python的API示例代码分析...
  5. php取指定文件夹图片大小,php获取某文件夹的大小
  6. 时间序列趋势判断(二)——Cox-Staut趋势检验
  7. 【神经网络与深度学习】CIFAR-10数据集介绍
  8. 微信小程序开发——以简单易懂的浏览器页面栈理解小程序的页面路由
  9. easyui datagrid 遇到的坑 cannot read property ·· pageNum bug and so on
  10. ATP-EMTP中的LCC模块电缆线路阅读bergeron模型与JMarti模型数据卡
  11. 微信加不了好友提醒服务器忙,微信加人对方收不到验证信息怎么办?
  12. 解决Visual Studio 2017 无法启动程序,系统找不到指定文件
  13. 深度测评 | 五大主流多端开发框架全面对比
  14. 2020年中国研究生数学建模竞赛E题
  15. 索尼Z2(L50t)刷CM12教程
  16. PAT 1124 Raffle for Weibo Followers
  17. android 滑动取值_Android中滑屏实现
  18. X509和CA的关系
  19. Oracle 学习之建表、索引、同义词以及SQL优化
  20. 描述统计 | 学习笔记 (全)

热门文章

  1. 102-RTKLIB中的相位解缠
  2. 电脑出现黑屏,无法显示桌面
  3. 141:vue+openlayers 测量长度和面积,尾随数字和关闭按钮
  4. OKhttp加载网络上的图片
  5. 数据报分片的偏移量问题
  6. 用补码计算x+y,并判断结果是否溢出问题
  7. 2020校招学习之路分享————MySQL篇
  8. 通过 pGina 对 Windows 设备进行管理
  9. 【Bugs系列】gcc canaries : undefined reference to __stack_chk_guard
  10. Eclipse版本和JDK版本对应关系(转)