We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
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
认证:证明你是谁。 会存在的问题:1、弱密码 2、凭证盗用(cookie)3、逻辑问题 授权:你被允许做什么。(水平权限、垂直权限)
如何解决: 1、认证与授权分离 2、权限控制在后端 3、使用统一的认证方式(公司的安全部门一般会有统一的管理系统)
1、debug信息泄露(例如console.log打印出来的信息) 2、报错信息(后端返回的错误信息中有敏感内容,例如sql语句) 3、源码暴露(把源码也上传至服务器) 4、安全意识(点击不安全的链接等)
反射型:如恶意链接。由用户点击触发,一次性完成。 储存型:例如恶意代码被保存至数据库,每当用户请求时都会触发恶意代码 DOM型:改变用户dom结构
如何解决: 1、数据类型检查 2、关键标签过滤 3、转义、编码
ps:xss的类型区分是根据数据流向决定的。例如储存型要经过数据库,反射型直接经过后端返回给浏览器。 xss介绍
解决方案: 1、参数检查 2、特殊符号转义 3、使用参数绑定或预编译语句(一些sql框架有预编译sql语句的功能,但是并不是所有的语句都可以预编译)
解决方案: 1、检查referer(该head字段可以被伪造) 2、请求中添加csrf_token 3、重要操作添加二次验证(手机验证码等)
很多web应用都提供了从其他的服务器上获取数据的功能。使用用户指定的URL,web应用可以获取图片,下载文件,读取文件内容等。这个功能如果被恶意使用,可以利用存在缺陷的web应用作为代理攻击远程和本地的服务器。这种形式的攻击称为服务端请求伪造攻击(Server-side Request Forgery)。 1、参数检查 2、检查返回内容(防止返回敏感信息) 3、黑名单限制特定端口与ip 4、返回统一的错误信息
1、参数检查 2、谨慎使用危险函数 3、代码与数据做分割(单独处理数据,确保其安全)
1、地址校验 2、重定向地址加签名
1、X-Frame-options:Deny、SAMEORIGN、ALLOW_FROM(该头部可以控制页面是否可以被嵌套) 2、操作二次确认
1、参数处理:类型检查、 参数过滤(白名单-较安全、黑名单、循环过滤)、转义编码(html转义、js转义、url编码、sql转义:根据语境选择) 2、认证授权:登录认证(逻辑不在前端,敏感数据不在前端,二次验证,返回提示不要太明确,ip控制) sessionId(及时更新删除) 权限控制(最小权限原则) 上传下载(检查文件类型、文件名处理、对文件名中的’../../‘做过滤,避免路径穿越,独立服务器) 用户提交 3、账号安全:密码找回(防止请求被篡改)
The text was updated successfully, but these errors were encountered:
最重要的一点:
Sorry, something went wrong.
No branches or pull requests
认证与授权
认证:证明你是谁。 会存在的问题:1、弱密码 2、凭证盗用(cookie)3、逻辑问题
授权:你被允许做什么。(水平权限、垂直权限)
如何解决:
1、认证与授权分离
2、权限控制在后端
3、使用统一的认证方式(公司的安全部门一般会有统一的管理系统)
信息泄露
1、debug信息泄露(例如console.log打印出来的信息)
2、报错信息(后端返回的错误信息中有敏感内容,例如sql语句)
3、源码暴露(把源码也上传至服务器)
4、安全意识(点击不安全的链接等)
xss
反射型:如恶意链接。由用户点击触发,一次性完成。
储存型:例如恶意代码被保存至数据库,每当用户请求时都会触发恶意代码
DOM型:改变用户dom结构
如何解决:
1、数据类型检查
2、关键标签过滤
3、转义、编码
ps:xss的类型区分是根据数据流向决定的。例如储存型要经过数据库,反射型直接经过后端返回给浏览器。
xss介绍
sql注入
解决方案:
1、参数检查
2、特殊符号转义
3、使用参数绑定或预编译语句(一些sql框架有预编译sql语句的功能,但是并不是所有的语句都可以预编译)
跨站脚本攻击
解决方案:
1、检查referer(该head字段可以被伪造)
2、请求中添加csrf_token
3、重要操作添加二次验证(手机验证码等)
服务端请求伪造
很多web应用都提供了从其他的服务器上获取数据的功能。使用用户指定的URL,web应用可以获取图片,下载文件,读取文件内容等。这个功能如果被恶意使用,可以利用存在缺陷的web应用作为代理攻击远程和本地的服务器。这种形式的攻击称为服务端请求伪造攻击(Server-side Request Forgery)。
1、参数检查
2、检查返回内容(防止返回敏感信息)
3、黑名单限制特定端口与ip
4、返回统一的错误信息
命令执行
1、参数检查
2、谨慎使用危险函数
3、代码与数据做分割(单独处理数据,确保其安全)
重定向被篡改
1、地址校验
2、重定向地址加签名
点击劫持
1、X-Frame-options:Deny、SAMEORIGN、ALLOW_FROM(该头部可以控制页面是否可以被嵌套)
2、操作二次确认
安全开发
1、参数处理:类型检查、 参数过滤(白名单-较安全、黑名单、循环过滤)、转义编码(html转义、js转义、url编码、sql转义:根据语境选择)
2、认证授权:登录认证(逻辑不在前端,敏感数据不在前端,二次验证,返回提示不要太明确,ip控制)
sessionId(及时更新删除)
权限控制(最小权限原则)
上传下载(检查文件类型、文件名处理、对文件名中的’../../‘做过滤,避免路径穿越,独立服务器)
用户提交
3、账号安全:密码找回(防止请求被篡改)
The text was updated successfully, but these errors were encountered: