常见web安全及其对策
发布于:2018-3-27 16:25 作者:song100e 浏览:527 分类:WEB注入攻击(执行恶意SQL):
1,避免被攻击者猜测到表名等数据库结构信息。
2,消毒(匹配关键字如 drop、delete、set等)。
3,绑定参数(如 PDO 的 prepare 模式等)。
XSS (跨站点脚本攻击):
1,消毒(转义HTML中的危险字符如:<>)
2,设置 HttpOnly 属性防窃取 Cookie。
CSRF (跨站点请求伪造):以合法用户身份进行非法操作
1,表单随机数 Token
2,验证码
3,Referer check
1,避免被攻击者猜测到表名等数据库结构信息。
2,消毒(匹配关键字如 drop、delete、set等)。
3,绑定参数(如 PDO 的 prepare 模式等)。
XSS (跨站点脚本攻击):
1,消毒(转义HTML中的危险字符如:<>)
2,设置 HttpOnly 属性防窃取 Cookie。
CSRF (跨站点请求伪造):以合法用户身份进行非法操作
1,表单随机数 Token
2,验证码
3,Referer check
HTTP 和 TCP 的关系
发布于:2017-12-9 16:31 作者:song100e 浏览:638 分类:WEBTCP(Transmission Control Protocol)即传输控制协议,工作在传输层。
HTTP协议即超文本传送协议(Hypertext Transfer Protocol),是 Web 联网的基础,HTTP 是应用层,HTTP 是要基于TCP连接基础上的,简单的说,TCP就是单纯建立连接,不涉及任何我们需要请求的实际数据,简单的传输。http是用来收发数据,即实际应用来的。
第一:从传输层,先说下 TCP 连接,我们要和服务端连接 TCP 连接,需要通过三次连接,包括:请求,确认,建立连接。即传说中的“三次握手协议”。
第1步:C 发送一个请求连接的位码 SYN 和一个随机产生的序列号给 Seq,然后 S 收到了这些数据。
第2步: S 收到了这个请求连接的位码,啊呀,有人向我发出请求了么,那我要不要接受他的请求,得实现确认一下,于是,发送了一个确认码 ACN(seq+1),和 SYN,Seq 给 C,然后 C 收到了,这个是第二次连接。
第3步:C 收到了确认的码和之前发送的 SYN 一比较,偶哟,对上了么,于是他又发送了一个ACN(SEQ+1)给 S,S 收到以后就确定建立连接,至此,TCP 连接建立完成。
简单点就是:请求,确认,连接。
第二:从数据应用层来说http
在前面客户端和应用服务器建立 TCP 连接之后,就需要用 HTTP 协议来传送数据了,HTTP 协议简单来说,还是请求,确认,连接。
总体就是 C 发送一个 HTTP 请求给 S,S 收到了这个 HTTP 请求,然后返回给 C HTTP 响应,然后 C 的中间件或者说浏览器把这些数据渲染成为了网页,展示在用户面前。
第1步:发送一个 HTTP 请求给 S,这个请求包括请求头和请求内容:
request header:包括了,(1).请求的方法是 POST/GET,请求的 URL,HTTP 协议版本。(2).请求的数据和编码方式。(3).是否有 COOKIE,是否缓存等。POST 和 GET 请求方式的区别是,GET 把请求内容放在 URL 后面,但是 URL 长度有限制。而 POST 是以表单的形势,适合要输入密码之类的,因为不在 URL 中显示,所以比较安全。
request body:即请求的内容.
第2步:S 收到了 HTTP 请求,然后根据请求头,返回 HTTP 响应。
response header:包括了(1).COOKIE 或者 SESSION。(2).状态码。3.内容大小等
response body:即响应的内容,包括,JS 什么的。
第3步,C 收到了以后,就由浏览器完成一系列的渲染,包括执行 JS 脚本等。
HTTP协议即超文本传送协议(Hypertext Transfer Protocol),是 Web 联网的基础,HTTP 是应用层,HTTP 是要基于TCP连接基础上的,简单的说,TCP就是单纯建立连接,不涉及任何我们需要请求的实际数据,简单的传输。http是用来收发数据,即实际应用来的。
第一:从传输层,先说下 TCP 连接,我们要和服务端连接 TCP 连接,需要通过三次连接,包括:请求,确认,建立连接。即传说中的“三次握手协议”。
第1步:C 发送一个请求连接的位码 SYN 和一个随机产生的序列号给 Seq,然后 S 收到了这些数据。
第2步: S 收到了这个请求连接的位码,啊呀,有人向我发出请求了么,那我要不要接受他的请求,得实现确认一下,于是,发送了一个确认码 ACN(seq+1),和 SYN,Seq 给 C,然后 C 收到了,这个是第二次连接。
第3步:C 收到了确认的码和之前发送的 SYN 一比较,偶哟,对上了么,于是他又发送了一个ACN(SEQ+1)给 S,S 收到以后就确定建立连接,至此,TCP 连接建立完成。
简单点就是:请求,确认,连接。
第二:从数据应用层来说http
在前面客户端和应用服务器建立 TCP 连接之后,就需要用 HTTP 协议来传送数据了,HTTP 协议简单来说,还是请求,确认,连接。
总体就是 C 发送一个 HTTP 请求给 S,S 收到了这个 HTTP 请求,然后返回给 C HTTP 响应,然后 C 的中间件或者说浏览器把这些数据渲染成为了网页,展示在用户面前。
第1步:发送一个 HTTP 请求给 S,这个请求包括请求头和请求内容:
request header:包括了,(1).请求的方法是 POST/GET,请求的 URL,HTTP 协议版本。(2).请求的数据和编码方式。(3).是否有 COOKIE,是否缓存等。POST 和 GET 请求方式的区别是,GET 把请求内容放在 URL 后面,但是 URL 长度有限制。而 POST 是以表单的形势,适合要输入密码之类的,因为不在 URL 中显示,所以比较安全。
request body:即请求的内容.
第2步:S 收到了 HTTP 请求,然后根据请求头,返回 HTTP 响应。
response header:包括了(1).COOKIE 或者 SESSION。(2).状态码。3.内容大小等
response body:即响应的内容,包括,JS 什么的。
第3步,C 收到了以后,就由浏览器完成一系列的渲染,包括执行 JS 脚本等。