Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Web 安全扫盲 #21

Open
vivipure opened this issue Jul 14, 2022 · 2 comments
Open

Web 安全扫盲 #21

vivipure opened this issue Jul 14, 2022 · 2 comments

Comments

@vivipure
Copy link
Owner

vivipure commented Jul 14, 2022

XSS

https://owasp.org/www-community/attacks/xss/

XSS (cross site scripting) 跨站脚本攻击,可以理解为网站会执行用户提交的内容。

类型:

  1. 反射型
    恶意输入包含到链接中,通过服务端生成包含恶意代码的HTML, 用户访问链接后执行恶意代码
  2. 存储型
    用户输入存储到服务器中,其他用户可以看到这个输入。如果这个输入直接渲染,可能会执行恶意代码。
  3. DOM型
    和反射性类似,一般是通过链接输入获取参数然后写入到页面中,区别是服务端返回HTML是正常的,客户端后续执行生成了恶意代码。例如innerHTML,eval 等操作。

出现原因:未对用户输入进行转义,直接展示用户的输入,导致执行用户输入的代码。常见于评论区,个人信息,私信等功能。可能造成其他用户的用户信息泄漏,危害极大。

如何防御:

  1. 对用户输入进行转义,过滤
  2. 使用 CSP ,进行脚本执行限制
  3. cookie 设置HttpOnly, 禁止 JS 获取
  4. 避免直接拼接HTML的操作,或者直接设置 innerHTML

XSS 攻击本质上可以说是 HTML注入,执行用户输入的内容

@vivipure
Copy link
Owner Author

vivipure commented Jul 20, 2022

CSRF

https://owasp.org/www-community/attacks/csrf

CSRF(cross site request forgery) 跨站请求伪造,这类攻击一般是利用用户登录的状态,欺骗用户执行攻击者想要执行的操作。例如一个网站的删除用户的操作是一个get请求,攻击者得知了请求的具体格式后,伪造成图片发送给管理员,管理员在登录状态看到该图片就会执行删除用户的操作。银行转账也是同理。

如何防御:

  1. 重要的操作,状态的更改不能使用get 请求.[POST请求只是相对安全]
  2. 对重要操作进行多重验证,验证码
  3. 验证请求的referr
  4. 设置 cookie same-site
  5. 自定义header, 利用header 设置token信息
  6. 服务端生成页面时 生成 csrf token, 用户提交表单时传入该token ,然后通过session进行验证token是否合法,这样可以保证是用户从合法路径发送了请求

CSRF 本质是伪造身份,常常结合XSS 一起进行攻击

@vivipure
Copy link
Owner Author

vivipure commented Aug 8, 2022

SQL 注入

SQL注入 是指数据库查询时通过前端传入的条件直接拼接查询语句,造成执行隐患的缺陷。 一般发生在 php网站,现在已经很少出现了。

影响: 数据库被清空,脱库

防御: 不能直接通过字符串进行凭借,使用对应的方法来执行语句

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant