-
Notifications
You must be signed in to change notification settings - Fork 20
WebSecurity
目录 start
目录 end|2020-11-17 14:17|
关注常见的比如 XSS CSRF SQL注入 上传等问题的原理和修复方案。还有密码安全也基本上是面试必考点。 作为开发人员,需要详细了解安全问题的原理。 比如XSS的原理是因为用户将它的数据变成了代码,在页面中跑起来了,所以就可以为所欲为。 CSRF则是当用户不知情时,被黑客的网页通过图片、表单等请求时, 用户的登录态(Cookies)在不知情的情况下会被发送到服务器,导致用户在不知情的情况下被利用身份。 点击支持则是网页被嵌入到了其他网站中,并通过视觉隐藏的方式引导用户进行一些不知情的操作。 上传导致的漏洞是因为用户的文件没有做好判断和处理,导致传上来的文件被当成程序执行了。 SQL注入是用户的数据被当成了表示SQL语义的部分,改变了原来的查询语句的语义,从而产生意料之外的结果。 反向代理服务器,构建在web服务器与 客户端之间,保护web服务器,服务器发送到客户端的请求被代理
jwt
JSON WEB TOKEN
- Blog:通过使用JWT来防御CSRF
-
Blog:介绍JWT
其实JWT还经常用于设计用户认证和授权系统,甚至实现Web应用的单点登录。
- Blog:单点登录
- Web 安全之 XSS、CSRF 和 JWT
需要注意的是,不是什么数据都适合放在 Cookie、localStorage 和 sessionStorage 中的。使用它们的时候,需要时刻注意是否有代码存在 XSS 注入的风险。
因为只要打开控制台,你就随意修改它们的值,也就是说如果你的网站中有 XSS 的风险,它们就能对你的 localStorage 肆意妄为。所以千万不要用它们存储你系统中的敏感数据
如何在无状态下,实现修改密码,过期时间等功能的思路,Token中存入: userId 过期时间 密码的部分Hash值
最常见和简单的就是 数字验证码, 通常能在一些公共服务的API中发现校验码的存在
CAPTCHA
CAPTCHA 全称 “全自动区分计算机和人类的图灵测试”(Completely Automated Public Turing Test to Tell Computers and Humans Apart)
它是一种区分用户是计算机还是人的计算程序,这种程序生成人类能很容易通过但计算机通不过的测试,并进行判定,人/机进行测试的过程称为一次“挑战”。
- 完善 SSL
- 基本概念:
-
CA (Certificate Authority)
证书授权中心,是数字证书发放和管理的机构 -
根证书
根证书是CA认证中心给自己颁发的证书,是信任链的起始点。安装根证书意味着对这个CA认证中心的信任。 -
数字证书
数字证书颁发过程一般为:- 用户首先产生自己的密钥对,并将公共密钥及部分个人身份信息传送给认证中心。
- 认证中心在核实身份后,将执行一些必要的步骤,以确信请求确实由用户发送而来。
- 认证中心将发给用户一个数字证书,该证书内包含用户的个人信息和他的公钥信息,同时还附有认证中心的签名信息。
-
-
Githhub:mkcert
签发证书工具
- 利用 referer 来控制
- 实现简单,绕过也简单
- 设想 中间使用一个认证中间件(请求静态文件需要携带token,token需要js方式计算获取,且有有效期),提高盗链难度
洪水攻击 参考博客 SYN Flood是当前最流行的DoS(拒绝服务攻击)与DDoS(分布式拒绝服务攻击)的方式之一,这是一种利用TCP协议缺陷,发送大量伪造的TCP连接请求,从而使得被攻击方资源耗尽(CPU满负荷或内存不足)的攻击方式。
- Linux:
- 修改文件
sudo vim /etc/sysctl.conf
- 将注释取消 修改值:
net.ipv4.tcp_syncookies = 0
- 就能提高并发总量,但是并发量还是不能提高
- 修改文件
net.ipv4.tcp_syncookies = 0
#此参数是为了防止洪水攻击的,但对于大并发系统,要禁用此设置
net.ipv4.tcp_max_syn_backlog=1024
#参数决定了SYN_RECV状态队列的数量,一般默认值为512或者1024,即超过这个数量,系统将不再接受新的TCP连接请求,一定程度上可以防止系统资源耗尽。可根据情况增加该值以接受更多的连接请求。
net.ipv4.tcp_tw_recycle=0
#参数决定是否加速TIME_WAIT的sockets的回收,默认为0。
net.ipv4.tcp_tw_reuse=0
#参数决定是否可将TIME_WAIT状态的sockets用于新的TCP连接,默认为0。
net.ipv4.tcp_max_tw_buckets
#参数决定TIME_WAIT状态的sockets总数量,可根据连接数和系统资源需要进行设置。
CSRF (Cross Site Request Forgery)
跨站请求伪造
指在一个浏览器中打开了两个标签页,其中一个页面通过窃取另一个页面的 cookie 来发送伪造的请求
例如: A站点某网页 a.html 有一个 image 标签 其 url 是B站点的URL,利用 cookie 会随着当前页面的请求自动发送到服务端的特性,A站点的cookie会发送至B站点
[Web 安全] 如何通过JWT防御CSRF web安全之token和CSRF攻击
博客:CSRF漏洞的原理
浅谈CSRF攻击方式
参考提问下的回答
token
- 打开当前页面时服务端先传递一个token给前端,前端后续的请求都需要携带该token(作请求参数或者Header),否则拒绝请求,这样能避免img标签方式的 CSRF
Cookie 中的 SameSite属性 Cookie详情
Cross Site Scripting
跨站脚本攻击
-
【 Algorithm 】
-
【 Blog 】
-
【 C 】
-
【 Database 】
-
【 Distributed 】
-
【 FrontEnd 】
- 【 FrontEnd/Frame 】
- 【 FrontEnd/Node 】
- Font
- Hexo
- JavaScript
- LearnPS
- ResponseCode
- SVG
- ViewSolution
- extjs学习笔记
-
【 Functional 】
-
【 Go 】
-
【 Groovy 】
-
【 Java 】
- 【 Java/AdvancedLearning 】
- 【 JavaBasic 】
- 【 JavaCache 】
- 【 JavaCollection 】
- 【 JavaConcurrency 】
- 【 JavaMap 】
- Annotation
- ClassFile
- Collection
- Concurrency
- Deploy
- Exception
- ExtendsAndInterface
- Generics
- IO
- JDBC
- JDKAndJRE
- JMX
- JVM
- Java11
- Java7
- Java8
- JavaNetwork
- JavaReleaseVersion
- JavaWeb
- JvmPerformance
- MQ
- MultipleLanguage
- Proxy
- Reflection
- Serialize
- SyntaxAndType
- Thread
- WebPerformance
- 【 Java/Android 】
- 【 Java/Ecosystem 】
- 【 Java/MSA 】
- 【 Java/Spring 】
- 【 Java/TemplateEngine 】
- 【 Java/Test 】
- 【 Java/Tool 】
- 【 Java/thread 】
- AlibabaJavaStandard
- DesignPattern
- HashMap解析
- Java-NIO
- Java虚拟机
- Log
- MIS
- Quartz
- RESTful
- WebSocket学习笔记
- ZooKeeper学习笔记
- android学习笔记
- 【 Java/AdvancedLearning 】
-
【 Kotlin 】
-
【 Linux 】
- 【 Linux/Alpine 】
- 【 Linux/Arch 】
- 【 Linux/Base 】
- 【 Linux/Centos 】
- 【 Linux/Container 】
- 【 Linux/Debian 】
- 【 Linux/Tool 】
- JavaDevInit
- Linux系统学习
-
【 MyBlog 】
-
【 Python 】
- 【 Python/Tool 】
- Python
- PythonConcurrent
- PythonGUI
- PythonGame
- PythonNet
- PythonOffices
- PythonWeb
- Python基础
- Python核心学习
-
【 Reactive 】
-
【 Rust 】
-
【 Scala 】
-
【 Script 】
-
【 Skills 】
- 【 Skills/Application 】
- 【 Skills/CS 】
- 【 Skills/Cache 】
- 【 Skills/Councurrency 】
- 【 Skills/DevOps 】
- 【 Skills/Document 】
- 【 Skills/Ecology 】
- 【 Skills/Network 】
- 【 Skills/Search 】
- 【 Skills/SoftwareEngineering 】
- 【 Skills/Spider 】
- 【 Skills/Test 】
- 【 Skills/Vcs 】
- 【 Skills/Work 】
- AppManual
- CelebrityQuotes
- Miscellaneous
- Platform
- Problem
- Protobuf
- RegularExpression
- SoftwareDesignEngineer
- Website
-
【 Windows 】