常见的web安全及解决办法

1、xss攻击

跨站脚本攻击,指通过用户浏览器运行非法的html或者js的一种攻击。原理是攻击者往web页面里面插入恶意执行的代码,导致用户信息泄漏。

xss攻击又分为两种,非持久性xss攻击和持久性xss攻击。

非持久性xss攻击:点击带有恶意脚本代码的url,当url被打开的时候,脚本执行,造成攻击。这种攻击需要用户点击,不需要服务器存储,直接通过get post 请求就能完成攻击,造成用户信息泄漏。

持久性xss攻击:这种一般存在于Form表单,如文章留言和评论,把恶意脚本提交存到服务器数据库中,当前端把数据渲染的时候造成恶意脚本执行。这种时效性来说,比较持久,会存到数据库中。

防御方法:

csp:

1、建立白名单,开发者告诉浏览器哪些外部资源可以加载和运行。

  • 设置 HTTP Header 中的 Content-Security-Policy
  • 设置 meta 标签的方式

Content-Security-Policy: default-src 'self'   //只允许加载本站资源。

Content-Security-Policy: img-src https://*   //只允许加载https的图片。

2、转义字符:

对用户输入的内容进行转义

3、HttpOnly  cookie

预防XSS攻击窃取用户cookie最有效的防御手段。Web应用程序在设置cookie时,将其属性设为HttpOnly,就可以防止cookie被恶意窃取。

nodejs 设置方法:

        res.cookie('isVisit', 1, {maxAge: 60 * 1000, httpOnly: true}) // 该处是设置 cookie 与 httpOnly 

2、csrf攻击:

跨站请求伪造,利用用户登录的身份,在用户不知道的情况下,用用户的身份做一些非法操作。


防御方法:

1.不让第三方网站访问到用户cookie

2.设置验证码或者token

3.阻止第三方网站访问接口

对cookie 设置SameSite属性,表示cookie不随着跨域转发。

Refer check:Referer Check在Web最常见的应用就是"防止图片盗链",可以允许哪些域访问

Anti CSRF Token:发送请求时在HTTP 请求中以参数的形式加入一个随机产生的token,并在服务器建立一个拦截器来验证这个token。服务器读取浏览器当前域cookie中这个token值,会进行校验该请求当中的token和cookie当中的token值是否都存在且相等,才认为这是合法的请求。否则认为这次请求是违法的,拒绝该次服务。

3.URL跳转漏洞

攻击者构造恶意链接,让用户点击,造成信息泄漏等

4.sql注入

后端经常遇到的。比如攻击者专门输入 用户名为admin' -- 后端的sql语句为:

let querySQL = `
    SELECT *
    FROM user
    WHERE username='${username}'
    AND psw='${password}'
`;

当用户名为admin' 的时候,sql变为 

SELECT * FROM user WHERE username='admin' --' AND psw='xxxx'

 后端要控制参数,尽量用?占位符,不要直接使用sql拼接 或者使用mysql.format

对特殊的字符进行转义或者编码处理等

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值