web网络安全知多少

web安全性包括: 客户端脚本安全和服务器端应用服务器

客户端脚本安全:

● 跨站脚本攻击(XSS )

● 跨站点请求伪造(CSRF)

● 点击劫持(ClickJacking)

● HTML 5 安全性

服务端应用安全:

● 注入攻击

● 文件上传漏洞

● 认证与会话管理

● 访问控制

● DDos攻击

个人意识和个人层面:

Xss 攻击

Cross Site script: Xss攻击是通过HTML网页篡改网页,插入恶意的脚本,从而在用护浏览网页,控制用户浏览器的一种攻击,Xss长期被列为Web客户端的头号大敌.

反射型XSS

反射型Xss只是简单把用户输入的数据"反射"给浏览器,也就是说,黑客往往需要诱使用户点击"恶意"的链接,有称为非持久的xss

存储型XSS

存储型Xss,黑客把恶意的脚本保存在服务器

DOM Based Xss

也是反射型的XSS,通过修改DOM节点形成XSS,称为DOM Based Xss

Xss攻击进阶

Xss payload

Xss 攻击成功之后,对用户当前浏览的页面植入恶意脚本,控制用户的浏览器,称为Xss payload,常见的Xss payload,是Cookie劫持,可以通过设置"Httponly"标识并防止Cookie劫持,

解决思路

  1. Cookie httponly
  2. 输入检查, 互联网有很多Xss filter
  3. 输出检查, 在变量输出到HTML时候,可以使用编码或者转义,比如HtmlEncode JavascriptEncode
  4. 富文本尽量不让用户自定义Css,如果支持的话,用Css parser对样式进行智能解析.
  5. Dom Based Xss是从javascript输出数据到HTML页面,上面所有的方法是从服务器直接输出到HTML,这块目前还没有效的解决,

跨站点请求伪造(CSRF)

浏览器的cookie

● SessionCookie(又名为临时Cookie)

● Third-party cookie

两者的区别是在于 Third-party cookie是服务器在set-cookie时指定了Expire时间,只有到了expire时间后的cookie才会失效,所以这种cookie会保存在本地,而session-cookie则没有指定expire时间,所以浏览器关闭之后,就失效了.一般而言浏览器会禁止

Web安全是一个很大的领域,可参考《白帽子讲Web安全》

1、XSS 跨站脚本攻击

○ 类型

■ 反射型

■ 存储型

■ 基于 DOM 的攻击

○ 解决方案有:

■ 服务端

● 输入时,过滤数据、使用编码

● 设置 cookie 为 httpOnly

■ 前端

● 输入时,过滤数据、使用编码

● 输出时,过滤数据

2、CSRF 跨站请求伪造

○ 原理:利用客户端用户的登录态进行的第三方请求攻击

○ 解决方案有:

■ referrer

■ 验证码

■ token

■ cookie 新增属性 SameSite

3、iframe 的风险

○ 防御:使用 iframe 的属性 sandbox 限制 iframe 的行为

4、点击劫持

○ 原理:利用网站视觉欺骗,将原有网页的功能或操作通过其他形式覆盖,当用户点击时,从而发起攻击

○ 防御:

■ iframe 覆盖攻击:使用 X-Frame-Options HTTP 响应头标记该页面不能被 iframe 嵌入,从而避免该点击劫持的可能性

■ 图片覆盖攻击:考虑是否存在xss、检查用户提交的img标签是否style属性浮出

5、错误的内容推断

○ 浏览器会根据返回的内容自行推断文件的类型,从而以相应的类型执行文件,如 .js 文件就发起执行 js 脚本。

○ 防御:设置 HTTP 头的属性 X-Content-Options: nosniff ,设置后浏览器不再推断类型,而是根据 Content-Type 的值去处理。

6、不安全的第三方依赖包

○ 通常项目开发中,不可避免的会使用到第三方依赖包,这时第三方依赖包就有可能存在安全漏洞。

○ 防御:

■ 使用一些检测工具检查第三方依赖包等

7、响应拦截

○ 通常用户访问某个网站,是从域名开始输入,访问某网站时,是通过 http 请求发起的,然后再重定向https请求,这给了攻击者机会,在 http 访问时便被拦截。

○ 防御:

■ 输入网站时,带上协议:https

■ 响应头上带上 Strict-Transport-Security 告诉浏览器以后访问该网址时自动把 http 转换成 https

■ 不使用不信任的热点访问需要关注安全的网站

8、本地存储数据泄露

○ 防御:尽可能不在前端存储敏感、机密的信息

9、静态资源完整性

○ 通常静态资源如 脚本文件 和 样式文件存在 CDN,若 CDN 被劫持修改了资源,那么就会造成被攻击。

○ 防御:使用浏览器端的 script 和 link 标签的属性 integrity 表示文件的 base64编码的哈希值和实际的文件哈希值比较是否未被修改。

相关推荐
云水一下3 小时前
零基础玩转bWAPP靶场(七十一):Slow HTTP DoS(慢速HTTP拒绝服务)
web安全·bwapp·slowhttptest
龙亘川6 小时前
一网统管AI平台民生业务实践:基于城市数字底座赋能公积金业务服务升级
大数据·安全·智慧城市·开源软件·数据可视化·政务
kybs19917 小时前
全球灾害数据分析可视化 毕业设计-附源码66794
vue.js·spring boot·mysql·安全·django·c#·asp.net
LorryJovens8 小时前
【LAAP科研】双系统具身AGI范式研究——基于LAAP认知架构与Jev概率决策模型的系统性技术调研与范式验证
人工智能·gpt·安全·架构
其实防守也摸鱼8 小时前
内网穿透与反向代理:原理、工具与实战指南
android·大数据·运维·安全·网络安全·自动化·渗透
山东科恩光电8 小时前
提升安全性的关键技术:安全触边在工业自动化中的应用解析
安全
LONGZETECH9 小时前
一线职教实测:风光 580 汽车故障诊断仿真系统,破解实车实训四大核心痛点
人工智能·学习·安全·架构·汽车
Mikko79 小时前
jackson-databind 升到 2.21.6 就安全了吗?jackson-core 是另一个坐标,它那条 high 全局库至今没收
java·后端·安全·json
赛博守夜人10 小时前
反舞弊系列之十四:商业地产与零售招商中的“转租差价与免租期寻租”
安全