Submit Search
Upload
Web开发与运维安全浅见
•
10 likes
•
2,305 views
M
mysqlops
Follow
Web开发,运维,安全,SQL注入
Read less
Read more
Technology
Report
Share
Report
Share
1 of 43
Recommended
Web开发与运维安全浅见
Web开发与运维安全浅见
CFC4N CHEN
分布式爬虫
分布式爬虫
mysqlops
Lamp架构下的web开发
Lamp架构下的web开发
ops_bd
[xKungFoo2012]Web Service Hack
[xKungFoo2012]Web Service Hack
pnig0s pnig0s
分布式爬虫
分布式爬虫
drewz lin
Web安全分享 -公开版
Web安全分享 -公开版
piao2010
Ssl
Ssl
yujianbo
20150528联动技术大讲堂15(刘胜)业务系统上线标准指引
20150528联动技术大讲堂15(刘胜)业务系统上线标准指引
liu sheng
Recommended
Web开发与运维安全浅见
Web开发与运维安全浅见
CFC4N CHEN
分布式爬虫
分布式爬虫
mysqlops
Lamp架构下的web开发
Lamp架构下的web开发
ops_bd
[xKungFoo2012]Web Service Hack
[xKungFoo2012]Web Service Hack
pnig0s pnig0s
分布式爬虫
分布式爬虫
drewz lin
Web安全分享 -公开版
Web安全分享 -公开版
piao2010
Ssl
Ssl
yujianbo
20150528联动技术大讲堂15(刘胜)业务系统上线标准指引
20150528联动技术大讲堂15(刘胜)业务系统上线标准指引
liu sheng
Java program in_action
Java program in_action
mysqlops
百度自动化运维中的关系管理
百度自动化运维中的关系管理
mysqlops
开放平台的资源分配与多级缓存体系的优化
开放平台的资源分配与多级缓存体系的优化
mysqlops
Php应用程序常见安全问题解析
Php应用程序常见安全问题解析
mysqlops
基于Symfony框架下的快速企业级应用开发
基于Symfony框架下的快速企业级应用开发
mysqlops
Taobao base
Taobao base
mysqlops
The simplethebeautiful
The simplethebeautiful
mysqlops
PHP WEB 应用组织与结构
PHP WEB 应用组织与结构
HonestQiao
Baidu Cloud Foundry
Baidu Cloud Foundry
James Watters
运维系统开发与Rails 3页面开发实践
运维系统开发与Rails 3页面开发实践
Li JianYe
非常靠谱 Html 5
非常靠谱 Html 5
Tony Deng
Intro to REST
Intro to REST
Leon Gao(高磊)
Intro to rest
Intro to rest
Leon Gao(高磊)
Web development overview
Web development overview
Wei Sun
大数据时代feed架构 (ArchSummit Beijing 2014)
大数据时代feed架构 (ArchSummit Beijing 2014)
Tim Y
客户端存储与计算
客户端存储与计算
xiaotao ning
Re Introduce Web Development
Re Introduce Web Development
finian lau
Web development introduced history and future
Web development introduced history and future
jarryli
0509 Windows Serevr 2008 新世代網路應用程式
0509 Windows Serevr 2008 新世代網路應用程式
Timothy Chen
Real time web实时信息流推送
Real time web实时信息流推送
yongboy
Real-Time Web实时信息流推送
Real-Time Web实时信息流推送
yongboy
Web客户端数据存储
Web客户端数据存储
fangdeng
More Related Content
Viewers also liked
Java program in_action
Java program in_action
mysqlops
百度自动化运维中的关系管理
百度自动化运维中的关系管理
mysqlops
开放平台的资源分配与多级缓存体系的优化
开放平台的资源分配与多级缓存体系的优化
mysqlops
Php应用程序常见安全问题解析
Php应用程序常见安全问题解析
mysqlops
基于Symfony框架下的快速企业级应用开发
基于Symfony框架下的快速企业级应用开发
mysqlops
Taobao base
Taobao base
mysqlops
The simplethebeautiful
The simplethebeautiful
mysqlops
Viewers also liked
(7)
Java program in_action
Java program in_action
百度自动化运维中的关系管理
百度自动化运维中的关系管理
开放平台的资源分配与多级缓存体系的优化
开放平台的资源分配与多级缓存体系的优化
Php应用程序常见安全问题解析
Php应用程序常见安全问题解析
基于Symfony框架下的快速企业级应用开发
基于Symfony框架下的快速企业级应用开发
Taobao base
Taobao base
The simplethebeautiful
The simplethebeautiful
Similar to Web开发与运维安全浅见
PHP WEB 应用组织与结构
PHP WEB 应用组织与结构
HonestQiao
Baidu Cloud Foundry
Baidu Cloud Foundry
James Watters
运维系统开发与Rails 3页面开发实践
运维系统开发与Rails 3页面开发实践
Li JianYe
非常靠谱 Html 5
非常靠谱 Html 5
Tony Deng
Intro to REST
Intro to REST
Leon Gao(高磊)
Intro to rest
Intro to rest
Leon Gao(高磊)
Web development overview
Web development overview
Wei Sun
大数据时代feed架构 (ArchSummit Beijing 2014)
大数据时代feed架构 (ArchSummit Beijing 2014)
Tim Y
客户端存储与计算
客户端存储与计算
xiaotao ning
Re Introduce Web Development
Re Introduce Web Development
finian lau
Web development introduced history and future
Web development introduced history and future
jarryli
0509 Windows Serevr 2008 新世代網路應用程式
0509 Windows Serevr 2008 新世代網路應用程式
Timothy Chen
Real time web实时信息流推送
Real time web实时信息流推送
yongboy
Real-Time Web实时信息流推送
Real-Time Web实时信息流推送
yongboy
Web客户端数据存储
Web客户端数据存储
fangdeng
1026 Windows Server 2008 Active Directory 版權管理服務
1026 Windows Server 2008 Active Directory 版權管理服務
Timothy Chen
华为软件定义存储架构分析
华为软件定义存储架构分析
Liang Ming
2010 cyberoam techsheet-s
2010 cyberoam techsheet-s
道成資訊股份有限公司
前端性能优化和自动化
前端性能优化和自动化
kaven yan
Java@taobao
Java@taobao
vanadies10
Similar to Web开发与运维安全浅见
(20)
PHP WEB 应用组织与结构
PHP WEB 应用组织与结构
Baidu Cloud Foundry
Baidu Cloud Foundry
运维系统开发与Rails 3页面开发实践
运维系统开发与Rails 3页面开发实践
非常靠谱 Html 5
非常靠谱 Html 5
Intro to REST
Intro to REST
Intro to rest
Intro to rest
Web development overview
Web development overview
大数据时代feed架构 (ArchSummit Beijing 2014)
大数据时代feed架构 (ArchSummit Beijing 2014)
客户端存储与计算
客户端存储与计算
Re Introduce Web Development
Re Introduce Web Development
Web development introduced history and future
Web development introduced history and future
0509 Windows Serevr 2008 新世代網路應用程式
0509 Windows Serevr 2008 新世代網路應用程式
Real time web实时信息流推送
Real time web实时信息流推送
Real-Time Web实时信息流推送
Real-Time Web实时信息流推送
Web客户端数据存储
Web客户端数据存储
1026 Windows Server 2008 Active Directory 版權管理服務
1026 Windows Server 2008 Active Directory 版權管理服務
华为软件定义存储架构分析
华为软件定义存储架构分析
2010 cyberoam techsheet-s
2010 cyberoam techsheet-s
前端性能优化和自动化
前端性能优化和自动化
Java@taobao
Java@taobao
More from mysqlops
Oracle数据库分析函数详解
Oracle数据库分析函数详解
mysqlops
Percona Live 2012PPT:mysql-security-privileges-and-user-management
Percona Live 2012PPT:mysql-security-privileges-and-user-management
mysqlops
Percona Live 2012PPT: introduction-to-mysql-replication
Percona Live 2012PPT: introduction-to-mysql-replication
mysqlops
Percona Live 2012PPT: MySQL Cluster And NDB Cluster
Percona Live 2012PPT: MySQL Cluster And NDB Cluster
mysqlops
Percona Live 2012PPT: MySQL Query optimization
Percona Live 2012PPT: MySQL Query optimization
mysqlops
Pldc2012 innodb architecture and internals
Pldc2012 innodb architecture and internals
mysqlops
DBA新人的述职报告
DBA新人的述职报告
mysqlops
MySQL应用优化实践
MySQL应用优化实践
mysqlops
eBay EDW元数据管理及应用
eBay EDW元数据管理及应用
mysqlops
基于协程的网络开发框架的设计与实现
基于协程的网络开发框架的设计与实现
mysqlops
eBay基于Hadoop平台的用户邮件数据分析
eBay基于Hadoop平台的用户邮件数据分析
mysqlops
对MySQL DBA的一些思考
对MySQL DBA的一些思考
mysqlops
QQ聊天系统后台架构的演化与启示
QQ聊天系统后台架构的演化与启示
mysqlops
腾讯即时聊天IM1.4亿在线背后的故事
腾讯即时聊天IM1.4亿在线背后的故事
mysqlops
分布式存储与TDDL
分布式存储与TDDL
mysqlops
MySQL数据库生产环境维护
MySQL数据库生产环境维护
mysqlops
Memcached
Memcached
mysqlops
DevOPS
DevOPS
mysqlops
MySQL数据库开发的三十六条军规
MySQL数据库开发的三十六条军规
mysqlops
Web请求异步处理和海量数据即时分析在淘宝开放平台的实践
Web请求异步处理和海量数据即时分析在淘宝开放平台的实践
mysqlops
More from mysqlops
(20)
Oracle数据库分析函数详解
Oracle数据库分析函数详解
Percona Live 2012PPT:mysql-security-privileges-and-user-management
Percona Live 2012PPT:mysql-security-privileges-and-user-management
Percona Live 2012PPT: introduction-to-mysql-replication
Percona Live 2012PPT: introduction-to-mysql-replication
Percona Live 2012PPT: MySQL Cluster And NDB Cluster
Percona Live 2012PPT: MySQL Cluster And NDB Cluster
Percona Live 2012PPT: MySQL Query optimization
Percona Live 2012PPT: MySQL Query optimization
Pldc2012 innodb architecture and internals
Pldc2012 innodb architecture and internals
DBA新人的述职报告
DBA新人的述职报告
MySQL应用优化实践
MySQL应用优化实践
eBay EDW元数据管理及应用
eBay EDW元数据管理及应用
基于协程的网络开发框架的设计与实现
基于协程的网络开发框架的设计与实现
eBay基于Hadoop平台的用户邮件数据分析
eBay基于Hadoop平台的用户邮件数据分析
对MySQL DBA的一些思考
对MySQL DBA的一些思考
QQ聊天系统后台架构的演化与启示
QQ聊天系统后台架构的演化与启示
腾讯即时聊天IM1.4亿在线背后的故事
腾讯即时聊天IM1.4亿在线背后的故事
分布式存储与TDDL
分布式存储与TDDL
MySQL数据库生产环境维护
MySQL数据库生产环境维护
Memcached
Memcached
DevOPS
DevOPS
MySQL数据库开发的三十六条军规
MySQL数据库开发的三十六条军规
Web请求异步处理和海量数据即时分析在淘宝开放平台的实践
Web请求异步处理和海量数据即时分析在淘宝开放平台的实践
Web开发与运维安全浅见
1.
web开发与运维安全浅见
2.
3.
SQL注入
4.
文件上传
5.
XSS与SCRF
6.
远程文件包含
7.
URL跳转
8.
权限认证
9.
数据存储与暴力破解
10.
文件解析
11.
12.
http://www.test.com/eg.html
13.
浏览器如何与服务端通信
14.
浏览器、传输协议、服务端
15.
浏览器(Netscape、IE、Firefox、….)
16.
传输协议 (http 1.0)
17.
服务端(iis、apache)
18.
与用户交互,新事物出现
19.
http://test.com/cgi-bin/aa.pl/bb/cc
20.
http://test.com/cgi-bin/dd.py/ee/ff?a=1
21.
服务端如何与脚本语言通信
22.
CGI 、STDINTDOUT、环境变量
23.
保存用户提交的信息,新事物出现
24.
脚本语言如何与数据库通信
25.
更… …多的需求
26.
更多的用户访问,更多的应用,更多的数据----越来越复杂,功能越来越多
27.
28.
用户无法与服务器交互,也没有DB,就不谈SQL注入了。
29.
那时我还年轻,会发生什么安全问题我不知道。
30.
31.
32.
不让其产生SQL语句拼接:SQL参数化查询(PDO)
33.
整型参数:强制转化为整型(phpintval、(int))
34.
35.
36.
SQL注入
37.
SQL注入
38.
文件上传 网站为了提供更多的功能,吸引用户,推出上传文件功能已经是必备的手段了。尤其是上传头像。 为了确保用户上传的文件合法,一般会使用JS去判断文件的拓展名是否合法,确认合法之后,再通过,允许提交到服务端。当表单提交时,浏览器会向服务端发出这么一个HTTP
数据包
39.
40.
filename :1234.php[].jpg,其中为十六进制的00当保存的时候,文件名的null字符之后的字符串将被舍弃,只保留前面的字符。那么,这个文件会被保存成一个php的文件。
41.
42.
PNG(8 bytes):89 50
4E 47 0D 0A 1A 0A
43.
GIF(6 bytes):47 49
46 38 39 61 (GIF89a)
44.
45.
PHP GD库重绘图片
46.
Getimagesize获取的mime来给予文件拓展名
47.
文件名不使用原文件名,随机生成
48.
保存目录不允许脚本解析执行几种策略联合使用,避免安全问题发生。
49.
50.
来自“站内”
51.
52.
53.
XSS的防护:对于GET参数的输出,转化为html实体,再输出;对于保存到数据库的信息,很多人犹豫在入库前过滤,还是出库后,输出前过滤。我倾向后者,尽量保留用户输入的原始数据。
54.
ormhash:如果产生CSRF漏洞的页面也有XSS漏洞,那么formhash的防护将失去作用。XSS可以获取到当前标签页内各个dom节点内容,也包括formhash的内容。
55.
验证码:用户体验差
56.
57.
session:保存在服务端,有一定的生效时间,由后端脚本实现回收。保存方式一般是文件,对php来说,可以保存到redis、memcache之类内存nosql数据库中。脚本与浏览器传输session id的方式分为cookie传输,以及URL中传输。
58.
cookie:保存在客户端,可设定生效时间,由浏览器负责回收。保存方式为文件。
59.
Cookie、session区别与联系
60.
区别:保存方式、回收者不一样。
61.
62.
63.
尽量绑定客户端,为了提高用户体验,可不绑定IP;认证信息中不保存用户密码等相关用户的敏感信息,项目密钥与的当前用户名、浏览器agent等字符串通过加密算法(字符串移位、异或等简单处理)生成的字符串(这些字符串可能有不可见字符,不方便传递,可再BASE64转化一下),设置为认证信息。尽管session劫持的问题可以通过session_regenerate_id函数重新分配一个新的session id,但仍建议哪怕是保存在session 中的认证信息也要加密存放,尽量不要明文(序列化之后的数组)存放。对于cookie存储,认证部分可设置httponly,禁止客户端语言(JS/flash)读取。
64.
65.
都可以被XSS漏洞获取(非httponly,session id以cookie方式保存到客户端)
66.
session以URL方式传递:危险性更大些,当用户通过本站访问其他站点时,会将url中的session泄漏出去(出现在http-referfer中)
67.
他们保存的认证信息的安全最重要。
68.
如何选择
69.
session以文件方式保存,当访问量过大,session文件会很多,每次session_start时,一定机率的sessionGC,大量的扫描session文件是否过期,也是不小的IO。当后端脚本服务器增加,session文件的同步,也是需要注意的问题。若session文件不同步,用户被前端反向代理分发到一台未同步session文件的脚本服务器上,会发生session丢失的问题。
70.
session以redis、memcache等nosql保存时,每次session_start都要与nosql建立TCP连接,获取session,再释放连接。当nosql与脚本服务器不在同一服务器上,网络延迟也是一个需要考虑的问题。同时,这些nosql一般默认不设置密码认证,以为这任何能连接到nosql服务器上的人都可以直接访问。对于一些程序员认为session保存在服务端,足够安全,不加密。那么这些session无疑是明文显示,恶意攻击者可任意修改,控制所有用户的会话认证。a:4:{s:8:"username";s:5:"cfc4n";s:8:"is_admin";b:1;s:5:"money";s:4:"9000";s:6:"is_vip";b:1;}
71.
72.
cookie生效域为了SSO单点登录,多数程序会设置cookie为主域名下的所有二级域名,这样所有二级域名均可以读取到cookie,极为方便。当二级域名站点存在安全问题时,cookie很容易被窃取。而且cookie加密算法也被泄漏。尽量减少cookie的发送域,同时,尽量采用生成cookie的站点采用公钥加密、使用cookie的站点用私钥解密,来减少风险,使其只能伪造此站点的cookie,而不影响其他二级域名。
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
nginx与php配置不当的问题去年,80sec团队公布了nginx与php配置不当引起其他非法资源被当成php解析的问题。http://test.com/a.jpg/1.php会把1.jpg当作php文件解析。
84.
85.
86.
87.
SCRIPT_NAME=>fake.jpg/foo.php
88.
SCRIPT_FILENAME=>webroot/fake.jpg/foo.php
89.
PATH_INFO=>
//空,根据正则,没匹配到
90.
PATH_TRANSLATED=> //空[注意]
91.
92.
phpcgi按照CGI规范获取的结果是SCRIT_FILENAME=>wwwroot/fake.jpg
93.
94.
95.
96.
与CGI脚本在同一服务器上存在恶意代码的非脚本文件
97.
存在错误解析的漏洞
98.
如何防范
99.
不合法的文件不该被上传在服务器上,起码不该存在同一台服务器上
100.
不合法的URI不该通过匹配包含.phpURI的正则
101.
匹配URI中SCRIPT_NAME的正则如何写?
102.
103.
QA 知其然 知其所以然
梁启超《论小说与群治之关系》