Sec+ network attack笔记1
Shim
Shim 通常指的是一个小型代码库或程序,它介于两个其他软件组件之间,用于协调或使它们能够一起工作。Shim 可以用于多种情况,最常见的是解决兼容性问题、接口转换或功能增强。
在操作系统中,shim 可能被用作兼容性层,允许旧软件在新版本的操作系统上运行。例如,Windows 中的 “Compatibility Mode” 使用了 shim 来模拟旧版本的 Windows 环境。
在前端开发中,shim 常用于使得旧浏览器支持新的 web 标准或API。例如,HTML5 Shim 是一种 JavaScript 库,可以让旧版本的 Internet Explorer 支持 HTML5 新特性。
XSS(Cross-Site Scripting,跨站脚本攻击) #
例子: 假设你经常使用一个名为 “CoolForum” 的在线论坛。该论坛允许用户发帖,并在帖子中包含链接。一个攻击者发现该论坛的帖子内容没有进行恰当的过滤,他发了一个帖子,里面包含恶意 JavaScript 代码。当其他用户浏览这个帖子时,恶意代码在他们的浏览器中执行,窃取他们的会话 cookie,并将其发送到攻击者控制的服务器。这样攻击者就能利用这些 cookie 冒充受害者,在论坛上进行操作。
防御措施:
- 确保所有用户输入都经过适当的清理和编码,避免在页面上直接插入用户内容。
- 为敏感的 cookie 设置 ‘HttpOnly’ 属性,防止 JavaScript 访问它们。
CSRF/XSRF(Client-Side Request Forgery/Cross-Site Request Forgery,跨站请求伪造) #
例子: 想象一下,你登录到你的银行账户进行了一些操作,然后在同一个浏览器中打开了一个包含恶意内容的电子邮件。这封邮件包含一个看似无害的图片,但图片的 “src” 属性实际上是一个指向银行网站并自动发起转账操作的链接。如果你的银行网站不验证请求是否是由用户意愿发起的,那么这个请求就会被执行,你的钱就可能被转到攻击者指定的账户。
防御措施:
- 使用 Anti-CSRF tokens,确保每个提交的表单都包含一个服务器生成的唯一 token。
- 对于敏感操作,重新验证用户的身份,例如通过要求重新输入密码或发送二次验证代码。
SSRF(Server-Side Request Forgery,服务器端请求伪造) #
例子: 你使用一个提供图片下载功能的服务,用户输入图片的 URL,服务会下载图片并提供进一步的功能。攻击者发现这个服务没有正确地过滤用户输入的 URL,他输入了一个指向内部系统(如数据库管理界面)的 URL。该服务无意中请求了这个内部 URL,并且可能返回了敏感信息,或者对内部系统进行了非预期的操作。
防御措施:
- 对用户提供的 URL 进行严格的验证,不允许访问未经授权的或敏感的内部资源。
- 对发出的请求实施适当的网络隔离和访问控制。
理解这些攻击的工作原理及其防御措施对于维护网络安全是非常重要的。通过采取适当的安全措施,可以大大降低这些攻击的风险。