热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

安全编码最佳实践:PHP及编程语言安全

企业不应该避免使用PHP开发应用。一些人认为,比起其它选择,PHP太不安全了。这种说法也很不客观

 企业不应该避免使用PHP开发应用。一些人认为,比起其它选择,PHP太不安全了。这种说法也很不客观。

  WhiteHat Security(白帽安全)公司最近发布了研究,他们使用自动化的工具查看1700个web站点,看看安全bug的数量和建立站点使用的编程语言之间是否有任何关联。总体的结论是,没有一种语言是“最安全的”。研究表明,某些语言确实有益于结构化地编写,易于管理代码,且某些框架提供默认开启的安全控制。PHP可能名声更坏,因为它不仅被广泛地使用,而且垃圾邮件发送者们利用了许多不安全的PHP形式来发送垃圾邮件(通过邮件注入)。

  甚至最忠实的PHP迷也会同意,对于一个未经培训的程序员来说,用像PHP一样的语言更容易写出不安全的代码。因特网上有数以千计的例子和教程来解释如何使用PHP将一个花哨的功能添加到开发的应用中,但是它们中的大多数没有涵盖如何确保这些功能安全,不让应用容易受到攻击,因此功能丰富的PHP应用通常没有以安全的思维进行开发。

  培训你的开发人员,让他们带着安全的思维来写代码,这比起语言的选择来说更为重要。CERT(Computer Emergency Response Team,计算机应急响应团队)发现,大多数应用中的漏洞来自开发人员不断重复犯的、一些数量相对少的常见编程错误。通过消除不安全的编码,并专注于安全编码培训,你的软件开发人员可以迅速地减少或消除漏洞的数量,直到软件最终上线。你可以用因特网上的许多优秀且免费的资源和教程来发展他们(开发人员)在这个领域的技能。这个领域的领导者之一是OWASP站点(Open Web Application Security Project,开放Web应用安全项目),它提供了许多关于如何安全编码的例子。

  CERT安全编码的出发点是为常用的编程语言建立安全编码标准,并促进安全编码的最佳实践。另一个提高你的开发人员安全编码技能的好资源,是微软的MSDN安全社区和编写安全代码部分。那里有许多由微软软件安全专家Michael Howard撰写的各种书,你可能感兴趣的包括“编写安全的代码(Writing Secure Code)”、“软件安全的24个致命过错(24 Deadly Sins of Software Security)”和“安全开发生命周期(The Security Development Lifecycle)”。许多涉及的主题可以应用到任何一种编程语言,并会帮助你理解如何带着安全思维来编码:那就是,正确地使用安全功能并编写能够经受攻击的代码。

  如果你开始将从这些资源中学到的融合起来,并且将安全嵌入到整个应用生命周期,无论你选择使用哪种语言,但愿你的下个应用会更加强健并且能够经受攻击。


推荐阅读
  • 如何提高PHP编程技能及推荐高级教程
    本文介绍了如何提高PHP编程技能的方法,推荐了一些高级教程。学习任何一种编程语言都需要长期的坚持和不懈的努力,本文提醒读者要有足够的耐心和时间投入。通过实践操作学习,可以更好地理解和掌握PHP语言的特异性,特别是单引号和双引号的用法。同时,本文也指出了只走马观花看整体而不深入学习的学习方式无法真正掌握这门语言,建议读者要从整体来考虑局部,培养大局观。最后,本文提醒读者完成一个像模像样的网站需要付出更多的努力和实践。 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • 背景应用安全领域,各类攻击长久以来都危害着互联网上的应用,在web应用安全风险中,各类注入、跨站等攻击仍然占据着较前的位置。WAF(Web应用防火墙)正是为防御和阻断这类攻击而存在 ... [详细]
  • 本文介绍了互联网思维中的三个段子,涵盖了餐饮行业、淘品牌和创业企业的案例。通过这些案例,探讨了互联网思维的九大分类和十九条法则。其中包括雕爷牛腩餐厅的成功经验,三只松鼠淘品牌的包装策略以及一家创业企业的销售额增长情况。这些案例展示了互联网思维在不同领域的应用和成功之道。 ... [详细]
  • 浅解XXE与Portswigger Web Sec
    XXE与PortswiggerWebSec​相关链接:​博客园​安全脉搏​FreeBuf​XML的全称为XML外部实体注入,在学习的过程中发现有回显的XXE并不多,而 ... [详细]
  • 本文介绍了2019年上半年内蒙古计算机软考考试的报名通知和考试时间。考试报名时间为3月1日至3月23日,考试时间为2019年5月25日。考试分为高级、中级和初级三个级别,涵盖了多个专业资格。报名采取网上报名和网上缴费的方式进行,报考人员可登录内蒙古人事考试信息网进行报名。详细内容请点击查看。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • 延迟注入工具(python)的SQL脚本
    本文介绍了一个延迟注入工具(python)的SQL脚本,包括使用urllib2、time、socket、threading、requests等模块实现延迟注入的方法。该工具可以通过构造特定的URL来进行注入测试,并通过延迟时间来判断注入是否成功。 ... [详细]
  • 本文介绍了绕过WAF的XSS检测机制的方法,包括确定payload结构、测试和混淆。同时提出了一种构建XSS payload的方法,该payload与安全机制使用的正则表达式不匹配。通过清理用户输入、转义输出、使用文档对象模型(DOM)接收器和源、实施适当的跨域资源共享(CORS)策略和其他安全策略,可以有效阻止XSS漏洞。但是,WAF或自定义过滤器仍然被广泛使用来增加安全性。本文的方法可以绕过这种安全机制,构建与正则表达式不匹配的XSS payload。 ... [详细]
  • 本文介绍了一个免费的asp.net控件,该控件具备数据显示、录入、更新、删除等功能。它比datagrid更易用、更实用,同时具备多种功能,例如属性设置、数据排序、字段类型格式化显示、密码字段支持、图像字段上传和生成缩略图等。此外,它还提供了数据验证、日期选择器、数字选择器等功能,以及防止注入攻击、非本页提交和自动分页技术等安全性和性能优化功能。最后,该控件还支持字段值合计和数据导出功能。总之,该控件功能强大且免费,适用于asp.net开发。 ... [详细]
  • SpringBoot整合SpringSecurity+JWT实现单点登录
    SpringBoot整合SpringSecurity+JWT实现单点登录,Go语言社区,Golang程序员人脉社 ... [详细]
  • 本文详细介绍了Mybatis中#与$的区别及其作用。#{}可以防止sql注入,拼装sql时会自动添加单引号,适用于单个简单类型的形参。${}则将拿到的值直接拼装进sql,可能会产生sql注入问题,需要手动添加单引号,适用于动态传入表名或字段名。#{}可以实现preparedStatement向占位符中设置值,自动进行类型转换,有效防止sql注入,提高系统安全性。 ... [详细]
  • Kali Linux 简介
    KaliLinux是世界渗透测试行业公认的优秀的网络安全审计工具集合,它可以通过对设备的探测来审计其安全性,而且功能完备,几乎包含了目前所 ... [详细]
  • C#设计模式之八装饰模式(Decorator Pattern)【结构型】
    一、引言今天我们要讲【结构型】设计模式的第三个模式,该模式是【装饰模式】,英文名称:DecoratorPattern。我第一次看到这个名称想到的是另外一个词语“装修”,我就说说我对“装修”的理 ... [详细]
author-avatar
挖墙找红杏000
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有