涵舐渊

24 Feb.

php开发之web安全方面(二)

river0314:

这个稍微是物理层方面的知识了,本人对这个也不是很精通,从一本书上读到,稍微总结一下这个,更深度的web安全方面,以后继续研究。


不管是你的服务器,apache,mysql,php,这三样东西完全无bug,只是一种理想状态,尽量多的关注安全信息警报,防范于未然完全大于等灾害发生了再想办法处理。




1.对Apache的保护


①.httpd.conf中,将SerberTokens设置为Prod,以为不要在HTTP抱头包含更多信息,这个指令的默认值是Full,是将在HTTP头显示更多信息。


②.将ServerSignture设置为off,同样意味不在错误信息页面显示版本信息,以及更多的apache信息


③.在配置中设置禁止进行目录浏览


<Directory/>


OrderDeny, Allow


Denyfrom all


Optionsnone


AllowOverRivernone


</Directory> 在这里加入一条,Options-Indexes 这个意味着禁止浏览目录,保护目录的安全


④.其他出现安全漏洞的模块,及时关停。


2.保护Mysql


①.修改管理员账号密码,mysql命令行可以搞定,updateuser set user ='XXXX' where user = 'root';    flush privilegrs; 这个是更新账号的


确定账号之后,可以命令行,mysql-u xxxx;


SETPASSWORD FOR XXX@localhost =PASSWORD('new_password'); 这个是设置新的账号密码。


②.删掉test数据库,这样整个mysql就属于你所有了,默认mysql安装之后不会开启远程连接。


(不推荐使用WindowsServer 服务器,这样你会错过很多linux的精彩。)


3.保护PHP


①.safe_mode 预计在php6移除,不知道在PHP7中会怎样,以后再看,PHP7将会是zend3.0引擎.


②.配置:open_dir= <目录>这个是设置php允许的可以访问的顶层目录,黑客将无法遍历这个目录以上的目录。


③.safe_mode_exec_dir = <目录>这个意味着函数只有放置在特定目录下的系统程序有可以被访问,


④.expose_php = Off register_global = Off session cookie_lifetime的函数,这个是基础的啊,display_errors这个在很多框架内,将debug= false设置一下既可以搞定的。




4.万无一失


①.进行基础的自动化测试,能看到的业界的新闻是,python语言的测试部分代码就几万行,特别注重测试。


②.单元测试和系统测试,这些可以得到一些用户体验相关建议,也可以让程序员接触一些NULL数据,超过变量长度的数据,包含ASCII控制符的数据,包含特殊符号的数据,包含数据库注入的数据,其他可以想到的极端数据。


③.利用一写XXX安全测试工具,搜索引擎一般提供这些测试工具,进行一下测试,大多数的网站还是需要讨好搜索引擎的,所以这个过程很难忽略。




5.最极端情况


①.这些要求我们,在考虑最极端情况的时候想到这些,以这些为基础来设计代码底层,设计数据库,假设最基础的留言板程序员,我们想要最大程序的讨好用户,假设他们输入数据库注入的内容都要接受,却要为用户提供最好的体验。登陆方面,假设用户就要用123456作为密码,我怎样保护这些密码的安全。


②.用户订阅了回复内容发送到邮箱,有人给他发了一个木马,我该怎样保护这个程序不去破环用户电脑,也不破坏我的服务器。


③.对线上代码的管理,突然发现线上代码有个漏洞,而线下正在处理2.5个功能,合并是不可能的了,所以这个时候,该考虑如何管理这些代码的。




更多安全相关内容,以后多做点研究在分享,以上两个是初级的,但也是个很久将会受用的好习惯。




如果转载,请保留一下本人邮箱Limbo0720@outlook.com 谢谢



评论
热度(3)
努力进入安全领域

© 涵舐渊 | Powered by LOFTER