IT培训网 - IT职场人学IT技术上IT培训网
php开发工程师必知的PHP项目的安全问题
时间:2016-08-15 17:33:09 来源:PHP培训网 作者:石家庄IT培训网 已有:名学员访问该课程
任何的网站和手机app应用,都需要一个安全性。今天IT培训网我们只谈PHP的安全问题。
2016年的某一天,一位企业主突然想到了一个绝佳的思路和理念来占领和扩宽市场,但在这个时代,没点互联网思维都不好意思开公司啊,所以必须得先独立开发一个Web应用出来。
最终,CEO决定,雇佣一位PHP程序员来构建公司网站。
而你,就是一位PHP开发者,并且这家公司恰巧雇佣了你。
你坐在自己的工位,翻阅着项目规划,思考着如何构建代码,这时候电脑上一个弹窗吸引了你。"某公司网站被黑,所有客户数据都被盗取"。
你回过头来继续看着项目规划,突然想到如果自己的代码中出现了这些安全问题,那该怎么办呢?不由得出了一身冷汗。
那,如何才能提高PHP应用的安全性呢?
理解安全的本质
安全不是某个产品,也不是某个威胁清单,更不是某种绝对的保障。
安全是一个过程,更是面对风险时的成熟心态。
想做到绝对的安全是不可能的,但另一方面,攻击者同样需要考虑成本问题,如果你将攻击该系统的成本提高到攻击者没有兴趣去攻击,或者不愿意去攻击,那么我们的目的也就达到了。
但一般来说,提高攻击者攻击系统的成本,意味着降低用户的使用体验和系统的可用性。所以,更完美的情况是,我们既做到提高攻击者攻击成本,又对系统本身的体验度没有影响。
1.使用php 7进行开发
php 7中有三个比较重大的改动,对于提高应用安全性有很大帮助。
①.移除了旧版本中对于mysql_*函数的支持,因为这一函数在许多情况下是不安全的。
②.允许在代码中增加标量类型说明。
③.使用了更安全的随机数生成器
MySQLi和PDO扩展都支持预处理语句,但老的Mysql扩展并不支持。
总之,php 7是php语言的一个重要转折点,使用php 7可以更容易写出安全的代码。
2、用安全的headers
如何判断你的网站的headers是否安全呢?
安全专家搭建了一个网站(http://securityheaders.io),可以快速监测你的网站是否开启并正确设置了安全配置。
当然了,有些headers并不是必须要加,例如X-Frame-Options,如果你的网站确实需要用到frame框架,那你就可以不加这个headers。
有些开源程序可以辅助你更容易地完成对headers的设置,例如CSP Builder(作者将其公布在了Github上)。
不过还是强烈建议,你应该加上下面这些headers
Strict-Transport-Security
X-Frame-Options
X-XSS-Protection
3、使用可靠的参考资料和书籍
你可能会认为最后一点有些难以理解和牵强,其实,这一点是非常重要的。为什么单独提出这点呢?因为市面上php的书籍非常繁杂,而且质量也参差不齐。
许多的书籍中并没有涉及到安全开发方面的知识,如果开发者阅读这方面书籍过程中受到了误导,那么开发出来的程序肯定也会存在一些安全问题。
尽管使用php 7对提高程序安全性有一定作用,但是开发者具备基本的安全素质还是很有必要的。
如果你做到了以上四点,那么程序安全性一定会有很大的提高,并且在面对黑客攻击和处理威胁的过程中,你也会从容许多。
4、全局使用HTTPS
如果网站能够全局部署HTTPS,那么就不用再担心session劫持攻击了。并且使用Let's Encrypt和Caddy等一些开源项目部署HTTPS是十分容易的,虽然HTTPS在网络通信中增加了一层认证来加密你的通信,但是它占用的CPU和内存几乎是可以忽略不计的,并且在使用HTTP/2的情况下,HTTPS的通信速度要快于HTTP。
并且,使用正确的HTTPS证书,会有利于提高搜索引擎排名。
每期开班座位有限.0元试听抢座开始!
温馨提示 : 请保持手机畅通,咨询老师为您
提供专属一对一报名服务。