PHP 安全问题入门:10 个常见安全问题 + 实例讲解

feifei123 发布于 2025-02-26 阅读(10)

php教程 app

本文原载于SegmentFault专栏"PHP / Laravel / 全栈"翻译自Intro to basic web application security翻译:Charlie源码_Jade整理编辑:SegmentFault

相对于其他几种语言来说, PHP 在 Web 建站方面有更大的优势,即使是新手,也能很容易搭建一个网站但这种优势也容易带来一些负面影响,因为很多的 PHP 源码教程并没有涉及安全方面的知识SF为你推荐的这篇文章虽不能一定避免你的网站出现安全问题,但也涵盖了。

多种不同安全威胁和应对策略快来一览为快吧!出于演示需要,代码可能不是很完美日常开发过程中,很多代码都包源码含在了框架跟各种库里面作为一个后台开发,你不仅要熟练基本的CURD,更要知道如何保护你的数据1. SQL 注入

我赌一包辣条,你肯定会看到这里 SQL 注入是对您网站最大的威胁之一,如果您的数据库受到别源码人的 SQL 注入的攻击的话,别人可以转出你的数据库,也许还会产生更严重的后果网站要从数据库中获取动态数据,就必须执行 SQL 语句,举例如下:。

一般情况下,你希望查询户名为「 peter 」的用户产源码生的 SQL 语句如下:SELECT * FROM users WHERE username = peter但是,攻击者发送了特定的用户名参数,例如: OR 1=1,这就会导致 SQL 语句变成这样:源码

SELECT * FROMusersWHERE username = peterOR1 = 1这样,他就能在不需要密码的情况下导出你的整个用户表的数据了那么,我们如何防止这类事故的发生呢?主流的解决方源码法有两种。

转义用户输入的数据或者使用封装好的语句转义的方法是封装好一个函数,用来对用户提交的数据进行过滤,去掉有害的标签但是,我不太推荐使用这个方法,因为比较容易忘记在每个地方都做此处理下面,我来介绍源码如何使用 PDO 执行封装好的语句( mysqli 也一样):

$username = $_GET[username];$query = $pdo->prepare(SELECT * FROM user源码s WHERE username = :username);$query->execute([

username => $username]);$data = $query->fetch();动态数据的源码每个部分都以:做前缀然后将所有参数作为数组传递给执行函数,看起来就像 PDO 为你转义了有害数据一样。

几乎所有的数据库驱动程序都支持封装好的语句,没有理由不使用它们!养成使用他们的习惯,以后就不会忘记源码了你也可以参考 phpdelusions 中的一篇关于动态构建 SQL 查询时处理安全问题的文章链接: https://phpdelusions.net/pdo/sql_injection_examp源码le

2. XSSXSS 又叫 CSS (Cross Site Script) ,跨站脚本攻击它指的是恶意攻击者往 Web 页面里插入恶意 html 代码,当用户浏览该页之时,嵌入其中 Web 里面的 源码html 代码会被执行,从而达到恶意攻击用户的特殊目的。

下面以一个搜索页面为例子:

You searched for:

标签:  用户 密码 资源网 代码 攻击 

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。