前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >能用就行?PHP不能再果奔了!8条铁律送给你

能用就行?PHP不能再果奔了!8条铁律送给你

作者头像
程序员小助手
发布2020-04-27 10:22:57
4500
发布2020-04-27 10:22:57
举报
文章被收录于专栏:程序员小助手程序员小助手

引言

哎,想要做到安全,真的很难。

大多数时候还真不知道怎么下手,而至于安全性所带来的效果,也总是模糊不清。这也难怪那么多开发者不重视安全性。

下面提供一个PHP安全最佳实践的列表,帮助大家厘清一些安全需要注意的点。

1 - 筛选并验证所有数据

无论数据来自何处,无论是配置文件、服务器环境、GET和POST,还是其他任何地方,都不要信任它。

过滤 + 验证!

可以使用高效可用的库来实现,比如zend-inputfilter。

2 - 使用参数化数据库查询

为了避免SQL注入攻击,永远不要用外部数据连接或插入SQL字符串。而是使用参数化查询和准备好的语句。

这些可以与特定的第三方库一起使用,也可以使用PDO。

3 - 设置open_basedir

open_basedir指令限制PHP可以从open_basedir目录向下访问文件系统的文件。不能访问该目录之外的任何文件或目录。

这样,如果恶意用户试图访问敏感文件,比如/etc/passwd,访问将被拒绝。

4 - 检查您的SSL / TLS配置

通过定期扫描,确保服务器的SSL/TLS配置是最新的和正确配置的,并且没有使用弱密码过时的TLS版本、没有弱密钥的有效安全证书等。

5 - 使用TLS或公钥连接到远程服务

在访问任何数据库服务器远程服务(如Redis、Beanstalkd或Memcached)时,坚持使用TLS或公钥。

这样做可以确保只允许经过身份验证的访问,并且对请求和响应进行加密,并且不会以明文传输数据。

6 - 不要在header中发送敏感信息

默认情况下,PHP将在HTTP header 中设置版本号。一些框架也是这么做的。

7 - 能写的尽量都写上日志

无论您是否记录失败的登录尝试、密码重置或调试信息,都要确保您记录的是易于使用的成熟包,比如Monolog。

8 - 要有内容安全策略

无论你是只有一个页面、静态网站、大型静态网站,还是复杂的基于web的应用程序,都要实现内容安全策略。它有助于缓解一系列常见的攻击,比如XSS。

写在最后

当应用上规模之后,这些都用的到。别说一直都在开发小应用,小数据量的系统,想要进阶,系统安全很考验开发人员的功底哦。

Happy coding :)

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-04-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员小助手 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 引言
  • 1 - 筛选并验证所有数据
  • 2 - 使用参数化数据库查询
  • 3 - 设置open_basedir
  • 4 - 检查您的SSL / TLS配置
  • 5 - 使用TLS或公钥连接到远程服务
  • 6 - 不要在header中发送敏感信息
  • 7 - 能写的尽量都写上日志
  • 8 - 要有内容安全策略
  • 写在最后
相关产品与服务
应用安全开发
应用安全开发(Application Security Development,下文中也叫 Xcheck)为您提供优质的代码分析服务。Xcheck 凭借优秀的算法和工程实现,能在极低的误报率和漏报率前提下,以极快的速度发现代码中存在的安全漏洞。Xcheck 采用私有化部署的模式,所以产品使用的整个生命周期,源码都不会流出公司网络,杜绝源码泄露风险。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档