PHP项目的安全原则

这篇具有很好参考价值的文章主要介绍了PHP项目的安全原则。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

从W3Techs 发布的历年服务器端编程语言使用趋势报告显示,近十年来 PHP 在份额上依旧牢牢占据榜首的位置,报告从 2013 年开始一直持续到 2024年。可以看到 PHP 始终占有 75% 以上的份额,几乎没有遇到比较大的波动。尽管最近几年 PHP 不再流行,大家也一直拿“PHP 是世界上最好的语言”来进行调侃,但从数据上看 PHP 仍是迄今为止最常用的服务器端语言。

PHP项目的安全原则,PHP开发安全问题,安全,数据库,php,服务器,sql

查看原文

PHP 占比如此高的一个重要原因就是其简单易用,学习门槛低,但这也导致了很多应用在研发过程中存在着各种漏洞,而这些漏洞在不关注安全代码设计的人员眼里几乎是不可见的。

因此本社群我们将着重讨论 PHP 的项目安全研发问题,引导研发人员对PHP项目安全问题进行深入思考,提高安全意识与技能。

01 不可信原则

PHP主要负责后端服务的运行,而后端服务的执行通常会需要从用户手里获得相应的输入数据,虽然我们会通过前端页面约束用户的输入数据,但只要是对外公开的服务,你就不能相信用户一定会按照你的预期来提交你想要的数据,例如他们可以通过一些工具直接脱开你的前端页面来提交数据,所以在执行后端服务之前,你必须要检查所有的输入数据,否则你将面临SQL注入攻击、上传非法文件、越权等黑客攻击手段。

PHP项目的安全原则,PHP开发安全问题,安全,数据库,php,服务器,sql

合法的输入才可以进入流程,这也将最大限度地保证程序的安全。

较为常见的输入数据,会通过 GET / POST 的方式传递给后端服务,而为了能够获取用户身份信息,我们还可以通过获取 Cookie 信息,来判断该请求是哪些用户发来的。

不同的数据会有不同的长度、格式或者类型。如果发现非法数据,我们需要立即执行阻断响应,而不是帮助用户修复数据,不然可能会发生二次污染或遭受攻击。

例如:手机号码的长度必须为11位。

同时,我们也需要努力确保用户无法通过猜测参数的规则来获取他人数据。

02 最小化原则

02.01 权限最小化

研发人员在项目设计过程中必须对用户的每一次数据库操作都进行身份认证。确保将用户的可见范围控制在允许的最小范围中。

最常见的就是一篇文档,只允许作者可以编辑,即使文档的编辑链接被别人知道了,对方也没有权限编辑/访问该页面。

有效地降低系统/数据库被非法用户访问。

02.02 暴露最小化

信息暴露是指用户的数据在传输过程中/保存在数据库后被他人窃取的一种行为。最常见的就是用户输入的登陆密码从前端到后端的过程中,被中间各个路由设备记录成日志信息,存在暴露风险;也有可能是服务提供者的数据库被黑客入侵,导致整个数据库的数据直接被他人获取。

因此研发人员需要注意到信息在传输过程中以及保存在数据库后,是否需要使用加密手段。

最常见的加密手段就是开启https服务,使用安全套接层(Secure Sockets Layer, SSL)对数据在传输过程中加以保护,但这只能说降低了一定的风险。

PHP项目的安全原则,PHP开发安全问题,安全,数据库,php,服务器,sql

你也可以通过前端加密,后端解密的方式,来提升数据在传输过程中的安全性。

如果你会查看页面的相关请求,你就会发现乐述云享在获取文章数据的时候,给前端的数据均为加密内容,用户根本没有办法通过请求来获取文章的markdown文本。

PHP项目的安全原则,PHP开发安全问题,安全,数据库,php,服务器,sql

因此,即使有路由设备保留/被黑客窃取了相关数据,也是无法直接查看内容的。

世界上没有绝对安全的地方,因此针对于数据库入侵这件事情,我们也不能保证绝对不会发生,因此研发人员在数据库中保存数据的时候,可以直接存储加密过后的数据,在用户需要使用时,再通过算法进行解密,这便将信息暴露控制在了最小范围。

以上所提到过的保护技巧,我们会在未来的文章中为大家一一展示。

03 堡垒机与云防火墙

堡垒机和云防火墙是两个网络安全领域中非常重要的产品,它们的功能和作用不同。

堡垒机一般用于企业内部,对于内部服务器进行安全管理和监控。堡垒机通过对权限的控制,可以避免内部员工越权操作服务器,防止机密信息泄露,提高系统的安全性。

PHP项目的安全原则,PHP开发安全问题,安全,数据库,php,服务器,sql

从上图中可以看到,对于企业的VPC资产,均需要通过堡垒机才能访问,而研发人员能够使用哪些VPC资源,也都是由管理员进行资源分配,无法直接获取VPC的访问账号和密码,若因工作调动原因,取消相关人员的访问权限,也只需要通过堡垒机,调整该用户的可访问资源。云端VPC的外网是直接屏蔽的,若用户需要访问该服务器中提供的服务时,就需要用到下一个产品了:云防火墙。

云防火墙用于企业网络的边界,通过过滤网络流量,防止来自外部网络的攻击,保障内部网络的安全。

与堡垒机最大的区别就是,云防火墙负责筛查所有外部流量,只有正常流量,才可以通过云防火墙,并在内网中访问到提供服务的VPC设备。

总之,PHP的安全问题不可小视,在攻防严重不对等的今天,不能只依赖基础安全设备和框架来避免所有的安全威胁,每个研发人员都应该具备安全研发能力,从根本上解决安全问题。

PHP项目的安全原则 - 乐述云享 (aleshu.com)

【社群】PHP开发(安全问题) - 乐述云享 (aleshu.com)文章来源地址https://www.toymoban.com/news/detail-811231.html

到了这里,关于PHP项目的安全原则的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • PHP教学资源管理系统Dreamweaver开发mysql数据库web结构php编程计算机网页

    一、源码特点     PHP 教学资源管理系统是一套完善的web设计系统,对理解php编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。 源码 https://download.csdn.net/download/qq_41221322/88260480 论文 https://download.csdn.net/download/qq_41221322/88260482 二、功能介绍 前

    2024年02月10日
    浏览(45)
  • PHP NBA球迷俱乐部系统Dreamweaver开发mysql数据库web结构php编程计算机网页

    一、源码特点     PHP NBA球迷俱乐部系统是一套完善的web设计系统,对理解php编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。 基于PHP的NBA球迷俱乐部 二、功能介绍 1、前台主要功能: 系统首页 网站介绍 网站新闻浏览 球迷注册 球队简介浏

    2024年02月09日
    浏览(43)
  • 解决 php 连接mysql数据库时报错:Fatal error: Class ‘mysqli’ not found in问题【更新23.12.12】

    在使用php对mysql进行连接的过程中,出现了 Fatal error : Uncaught Error: Class \\\"mysqli\\\" not found in 的问题 这个错误通常表示您的PHP代码中缺少MySQL扩展或者没有启用MySQL扩展。 我们首先确认一下PHP环境中已经安装了MySQL扩展。检查一下自己的php路径下有没有php_mysqli.dll这个文件,如果有

    2024年02月03日
    浏览(40)
  • 基于.Net开发的数据库导入导出的开源项目

    在项目开发过程中,我们经常碰到从数据库导入导出的需求,虽然这样的功能不是很复杂,但是往往我们都会碰到一些问题。 比如导入的Excel格式问题、Excetl中图片导入问题,导出的需求为了方便客户查看,会面临更多个性化的需求,为了满足这些需求,开发还是比较繁琐的

    2024年02月02日
    浏览(48)
  • 企业级开发项目实战——基于RabbitMQ实现数据库、elasticsearch的数据同步

    1、商品上架时:search-service新增商品到elasticsearch 2、商品下架时:search-service删除elasticsearch中的商品 数据同步是希望,当我们商品修改了数据库中的商品信息,索引库中的信息也会跟着改。在微服务中数据库和索引库是在两个不同的服务中。如果,商品的服务,向es的服务中

    2024年02月12日
    浏览(53)
  • 华为云云耀云服务器L实例评测|用PHP从数据库到后端到前端完整实现一个中秋节祝福语项目

    🏆作者简介,黑夜开发者,CSDN领军人物,全栈领域优质创作者✌,CSDN博客专家,阿里云社区专家博主,2023年6月CSDN上海赛道top4。 🏆数年电商行业从业经验,历任核心研发工程师,项目技术负责人。 🏆本文已收录于PHP专栏:PHP进阶实战教程,评测专区。 🎉欢迎 👍点赞✍

    2024年02月08日
    浏览(46)
  • Openssl数据安全传输平台016:在QT中的数据库操作+在项目中的设计与实现

    在Qt中进行数据库操作需要使用的类: QSqlDataBase 属于的模块: sql 使用这个类可以创建出一个连接数据库服务器的实例 单例

    2024年02月06日
    浏览(43)
  • 软件开发项目文档系列之八数据库设计说明书

    数据库设计说明书是一个关键文档,它提供了有关数据库的详细信息,包括设计、结构、运行环境、数据安全、管理和维护等方面的内容。 引言部分,简要介绍数据库设计说明书的目的和内容。这部分通常包括以下内容: 引言的目的:解释为什么需要数据库设计说明书,它

    2024年02月06日
    浏览(57)
  • 服务攻防-数据库安全-服务应用的安全问题以及测试流程-Mysql&Hadoop&未授权访问&RCE-漏洞复现

    目录 一、服务应用的安全问题 1、配置不当——未授权访问 2、安全机制——特定安全漏洞 3、安全机制——弱口令爆破攻击 二、服务应用的安全测试思路 1、判断服务是否开放 2、判断服务类型 3、判断利用方式 三、Mysql-未授权访问-CVE-2012-2122 利用 1、漏洞概述 2、漏洞复现

    2024年02月17日
    浏览(37)
  • Django后端开发——mysql数据库连接遇到的问题及解决

    stackflow帖子:https://stackoverflow.com/questions/39281594/error-1698-28000-access-denied-for-user-rootlocalhost 报错: 数据库拒绝root用户的连接 settings.py中关于数据库的配置: 可以看到root用户的密码为123456 但是在mysql数据库里面查看用户信息,root的密码为空 这样的不匹配导致连接失败 之前尝试

    2024年02月20日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包