前端安全问题

一、跨站脚本攻击XSS:cross-site scripting

攻击者往页面插入恶意html标签或js代码

问题

  1. 盗取页面数据:DOM、Cookie、localstorage等
  2. DOS攻击,占用服务器资源
  3. 破坏页面结构
  4. 流量劫持(链接指向某网站)

类型

  1. 存储型:恶意脚本存储在目标服务器上(数据库),用户保存数据(用户私信等),持久性好。服务器端安全漏洞
  2. 反射型:诱惑用户访问带有恶意代码的URL,服务器端处理,浏览器端执行,如网站搜索、跳转等,用户主动。服务器端安全漏洞
  3. Dom型:修改页面DOM节点,浏览器端取出和执行恶意代码。前端js安全漏洞
  4. 突变型(mxss):通过浏览器引擎发生突变,渲染成有潜在风险的脚本

防护措施

  1. 对用户输入进行严格的校验和清理,防止恶意代码注入
  2. 使用纯前端,不用服务器端拼接返回
  3. 使用content security policy(csp)、白名单来控制哪些资源可以加载
  4. 内容安全策略:http-equiv=“content-security-policy”
  5. 在输出到HTML、js、css上下文之前,对数据进行适当的编码
  6. 使用具有内置安全机制的框架,如React、angular
  7. 敏感信息保护,cookie使用http-only,验证码
    eg.使用textcontent代替innerHtml

二、跨站请求伪造CSRF

通过欺骗用户在登录的状态下执行未授权的操作
本质:cookie会在同源请求中携带发送给服务器端,实现用户冒充

类型

  1. GET请求 img标签
  2. POST表单
  3. 链接 a标签href

防护措施

  1. CSRF Token验证:服务器返回随机的Token。缺点:负载均衡时无token
    在每个敏感操作中使用唯一的CSRF令牌:服务器端生成CSRF令牌并存储在session中
  2. 同源检测:验证请求的来源是否可信,服务器根据http请求头中origin或referer判断是否允许访问,都不存在直接阻止,但referer可被伪造,还会屏蔽搜索引擎的链接
    referer:告诉服务器页面链接
  3. 对cookie双重验证:服务器向请求域名注入cookie,URL中加入cookie,缺点:网站存在xss则失效,子域名隔离
  4. 设置cookie时设置samesite,限制cookie不能被第三方使用
    samesite模式:严格模式(cookie不能作为第三方使用)、宽松模式(GET请求且会发生页面跳转时可用cookie)

三、文件上传漏洞

允许攻击者上传恶意文件啊,如脚本或可执行文件

防护措施

  1. 只允许上传特定类型的文件
  2. 将上传的文件存储到不直接执行的目录中
  3. 对上传文件进行重命名,避免使用用户提供的文件名

四、点击劫持ClickJacking

通过透明覆盖的方式(如隐藏的iframe)欺骗用户点击恶意链接,执行恶意操作

防护措施

  1. 在响应头中添加x-frame-option:DENY或SAMEORIGIN
  2. 使用content security policy(csp)来控制哪些资源可以加载

五、会话劫持

通过盗取用户的会话令牌来冒充用户

防护措施

  1. 使用安全的会话管理机制(如HTTPS,HTTP Only和secure标志的cookie)
  2. 生成随机且复杂的会话id
  3. 在用户操作期间定期更新会话id

六、不安全的重定向和跳转

防护措施

  1. 对重定向的URL进行白名单验证
  2. 验证跳转请求的合法性
  3. 使用HTTP Only和secure标志的cookie

敏感数据泄漏

可能发生在数据传输、存储或处理过程中

防护措施

  1. 使用HTTPS确保数据在传输过程中加密
  2. 对存储的敏感信息进行加密
  3. 只收集和存储必要的信息

七、SQL注入

通过把SQL命令插入到web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意SQL命令

防护措施

  1. 对用户输入进行合适的转义和过滤
  2. 使用安全的模版引擎或自动转义函数

八、安全配置

错误的安全配置可能导致系统暴露在攻击者面前

防护措施

  1. 确保所有软件和依赖项都保持最新
  2. 关闭不必要的端口和服务
  3. 使用安全配置基线来配置服务和应用

九、目录遍历

通过操纵文件路径来访问服务器上任意文件

防护措施

  1. 对用户输入的文件路径进行验证和规范化,防止访问超出预期的目录
  2. 确保web服务器只具有所需的最低权限

十、安全审计和监控

可以帮助检测和响应潜在的安全威胁

防护措施

  1. 对关键操作和异常行为进行记录
  2. 部署入侵检测系统(IDS)来监控和检测异常行动
  3. 定期进行安全设计和渗透测试,发现和修复漏洞

‌‌十一、HTTPS中间人攻击‌

即使服务器端开启了HTTPS,攻击者仍可能通过SSL Stripping等手段强制降级为HTTP,进行中间人攻击。

防护措施

  1. 强制使用HTTPS通信,防止中间人攻击;
  2. 使用HSTS告知浏览器强制使用HTTPS;

十二、CDN劫持‌

攻击者劫持CDN服务器,篡改前端资源,实施攻击。

防护措施

SRI(Subresource Integrity)‌:验证静态资源的完整性,防止被篡改。

十三、错误的内容推断‌

攻击者可能通过推断网页内容,注入恶意代码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值