网络安全问题
XSS
xss(cross-site script)
- 反射型XSS:**<非持久化>** 攻击者事先制作好攻击链接, 需要欺骗用户自己去点击链接才能触发XSS代码(服务器中没有这样的页面和内容),一般容易出现在搜索页面。比如说将script脚本放置在请求参数中,然后页面中需要用到请求参数,就会直接执行该script标签。非持久化>
- 存储型XSS:**<持久化>** 代码是存储在服务器中的,如在个人信息或发表文章等地方,加入代码,如果没有过滤或过滤不严,那么这些代码将储存到服务器中,每当有用户访问该页面的时候都会触发代码执行,这种XSS非常危险,容易造成蠕虫,大量盗窃cookie(虽然还有种DOM型XSS,但是也还是包括在存储型XSS内)。同上面的情况类似,入侵者将script标签写到了数据库中,然后每次发送请求之后,每次打开页面之后都会执行script标签。持久化>
防御:
-
标签转译:分为黑名单转译,将所有的<,>,/,都给转译为其他字符。”>”为”>” “<”为”<”.白名单的话就是使用xss库。可以把输入的文字都给部分转译一下。
-
应为xss主要的目的是为了获取你的cookie,然后那么我只需要设置在cookie中设置,http-only,就可以了,因为xss是要先从document中获取到cookie,然后再发送出去,实际上呢我们将其设置为只有在发送http请求的时候才能带上cookie。
-
CSP 内容安全策略(CSP)是一个额外的安全层,用于检测并削弱某些特定类型的攻击,包括跨站脚本和数据注入攻击等。无论是数据盗取、网站内容污染还是散发恶意软件,这些都是主要的手段。我们可以通过CSP来尽量减少XSS攻击,CSP本质上也是建立白名单,规定了浏览器只能够执行特定来源的代码。通常我们可以通过HTTP Header中的
Content-Security-Policy
来开启CSP-
只允许加载本站资源
Content-Security-Policy: default-src 'self'
-
只允许加载HTTPS协议图片
Content-Security-Policy: img-src https://*
-
允许加载任何来源
Content-Security-Policy:child-src 'none'
-
CSRF
CSRF(Cross-site request forgery),中文名称:跨站请求伪造,也被称为:one click attack/session riding,缩写为:CSRF/XSRF。
它主要就是利用你的浏览器保存了你的登陆信息,通过另外一个网址,在该网址中发送一个跨站请求,携带者你的身份认证,这样就可以成功的对你的账号进行操作了。
防御方式:
- reference check,但是很多时候,reference是可以修改的。
- cookie hash的方法,在表单中植入md5密码,虽然md5的安全性不太行,但是还是应对此问题已经够用了,因为每个表单中的随机数都是不一样的。
- 手机验证码
- sameSite:可以对Cookie进行设置,Samesite属性。该属性设置Cookie不随着跨域请求发送,该属性可以很大程度上减少CSRF的攻击。
点击劫持
这是一种视觉欺骗的方式,让你以为在点击一个正确的按钮的时候发送了一个别的请求。将该网站放置在一个iframe中,然后造成视觉的误差。
防御:
X-Frame-Options:deny
请求劫持
DNS劫持(DNS解析被劫持)
HTTP劫持(使用HTTPS)
DDOS(distributed denial of service)
syn flood http flood