lhlGitHub / trisome

前端大厂进攻学习资料库
21 stars 1 forks source link

说说web安全及防护措施 #49

Open lhlGitHub opened 2 years ago

loringray commented 2 years ago
  1. 跨站脚本攻击 (xss) xss攻击指的是攻击者往Web页面里插入恶意html标签或者javascript代码。

防护措施: (1)、对用户输入的信息进行转义。 (2)、对于一些敏感的 cookie 信息,使用 HttpOnly

  1. 跨站请求伪造 (CSRF/XSRF) 主要攻击原理是利用浏览器请求会自动带上 cookie (身份认证信息),这样只要知道用户在某个站点是登录状态,就可以在用户不知情的情况下访问对应接口,骗过身份验证进行恶意操作。

    防护措施: (1)、cookie 的 samesite 属性—— lax/strict 属性 (2)、对请求进行认证,在会话中增加 token (3)、验证来源站点

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

防护措施:

  1. 对用户输入进行校验,可以通过限制长度或者正则表达式等。
  2. 对重要信息加密或者 hash 掉密码及敏感的信息。
  3. 不要使用管理员权限的数据库连接。
Moannas commented 2 years ago

1、sql注入:在表单提交sql命令 解决方法:用正则替换,或者是mysql的预编译prepare,PHP的PDO将其实现了。因为语句先编译好了,用户怎么传都是一个参数。 2、xss跨站脚本漏洞: (1)非持久型跨站:即反射型跨站脚本漏洞,是目前最普遍的跨站类型。跨站代码一般存在于链接中,请求这样的链接时,跨站代码经过服务端反射回来,这类跨站的代码不存储到服务端; (2)持久型跨站:这是危害最直接的跨站类型,跨站代码存储于服务端,常见情况是某用户在论坛发贴,如果论坛没有过滤用户输入的Javascript代码数据,就会导致其他浏览此贴的用户的浏览器会执行发贴人所嵌入的Javascript代码。 解决方法:跟sql注入类似,不信任用户的提交,必须对所有输入中的script、iframe等字样进行严格的检查。这里的输入不仅仅是用户可以直接交互的输入接口,也包括HTTP请求中的Cookie中的变量,HTTP请求头部中的变量等 3、未加密的登录请求: 由于Web配置不安全,登陆请求把诸如用户名和密码等敏感字段未加密进行传输,攻击者可以窃听网络以劫获这些敏感信息。建议进行例如SSH等的加密后再传输。