Mysql 和 php 修复以复制 PDO 安全性

2024-02-22

据我了解,使用 PDO 几乎不可能进行 SQL 注入。 但是,我目前没有时间更改我们网站中所有与数据库相关的代码。 (特别是因为我是 PDO 的新手,所以涉及一些学习曲线)。所以我想知道哪些 mysql/php 函数可以提供与 PDO 相同的安全性。

这两点就够了吗?

  1. 确保所有 $_GET 和 $_POST 数据均为预期类型(例如产品 ID 只能是数字,所以我可以使用is_numeric).
  2. Using mysql_real_escape_string.

或者还有什么我应该做的吗?该网站的方式是基于id=x在查询字符串中,内容可能会进入数据库。黑客入侵后我看到的是,在数据库中,所有可以通过查询字符串进入数据库的东西都受到了诸如cd etc/pwd.


简短版本:从 mysql 扩展移动到mysqli 扩展 http://www.php.net/manual/en/book.mysqli.php,并将带参数的查询替换为准备好的语句(这是快速入门指南 http://php.net/manual/en/mysqli.quickstart.prepared-statements.php).

但从长远来看,现在学习 PDO 不会花那么长时间,而且is值得努力。

作为旁注:

据我了解,使用 PDO 几乎不可能进行 SQL 注入。

事实并非如此,可以在 PDO 中编写可注入查询。 PDO 中的这段代码与旧的 mysql 扩展中的代码一样糟糕(这里有两个漏洞向量,但只需要一个漏洞向量!):

$pdo_obj->query("SELECT password FROM users WHERE id = '".$_GET['id']."'");

PDO仅提供保护您自己并使其易于使用的工具。您始终、始终必须亲自验证和过滤输入。但是使用准备好的语句,您至少可以让数据库知道什么应该是参数,什么应该是查询的一部分。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Mysql 和 php 修复以复制 PDO 安全性 的相关文章

  • 如何将 PHP 数组中的值插入到 MySQL 表中?

    我正在创建一个注册表单 其中包含姓名 电子邮件和电话号码字段 为了检查用户输入的有效性 我有一个函数validate input 返回一个数组 arr包含用户输入的输入 如果用户输入有效 arr然后传递给一个单独的函数 该函数将值插入arr
  • 如何预览图片上传前后的效果?

    我打算在表单中预览图像或照片 但它不起作用 HTML 代码如下所示
  • PHP中如何检查输入类型按钮是否被按下?

    isset 函数可用于检查输入类型submit被按下 但是有没有办法检查输入类型按钮是否被按下 在我的代码中 按钮什么也不做 只是在 Onclick 事件上调用一个函数 然后刷新页面并在 PHP 中创建数据库条目 并且我希望它仅在按下按钮后
  • PHP 类扩展字符串变量

    是否可以声明一个类并让它扩展一个变量 class Child extends parentClass 是的 它是通过 eval 实现的 但不建议这样做
  • 仅为两个控制器分配不同的域

    我使用的是旧的 Yii v1 我只需要为两个控制器分配不同的域 所以我有一堆控制器 HomeController php CategoryController php GuestbookController php ShopControll
  • 为什么 IIS 不执行我的网站根目录 index.php 文件的 PHP 代码?

    IIS实际上是在发送将代码发送到浏览器而不是执行它 但是 仅针对根http domain com index php file 该文件夹中的所有其他 php 文件和子文件夹中的 index php 文件均按预期执行 我怎样才能执行我的根in
  • Symfony2 / Twig:生成备用绝对 URL 路径以与 CDN 一起使用?

    This 堆栈溢出解决方案 https stackoverflow com questions 7358470 twig asset with cdn using symfony 2几乎回答了我的问题 但我想生成 CDN urlTwig不仅
  • 回退到正则表达式中字符串的开头

    是否可以让正则表达式退回到字符串的开头并再次开始匹配 这就是我问的原因 给定下面的字符串 我想捕获子字符串black red blue and green按照该顺序 无论主题字符串中出现的顺序如何 并且仅当所有子字符串都存在于主题字符串中时
  • 无法登录 mediawiki:为了防止会话劫持而取消?

    我多年来一直使用托管在 AWS EC2 实例上的私有 mediawiki 我认为某些扩展出了问题 特别是在数学渲染过程中停止了 所以我尝试使用 Google Chrome 浏览器重新加载页面 缓存全部被删除 之后 我无法登录并看到此消息 您
  • 估计 libGD 操作所需的内存

    在尝试使用 libGD 在 PHP 中调整图像大小之前 我想检查是否有足够的内存可用于执行该操作 因为 内存不足 会完全终止 PHP 进程并且无法捕获 我的想法是 原始图像和新图像中的每个像素 RGBA 需要 4 字节内存 check av
  • HTML/PHP 中的 POST 和 GET 有什么区别[重复]

    这个问题在这里已经有答案了 我正在编写一个 PHP 脚本 但我似乎无法真正让它工作 我正在测试基础知识 但我不太明白 GET 和 POST 意味着什么 有什么区别 我在网上看到的所有定义对我来说没有多大意义 到目前为止我编写的代码 但由于我
  • preg_match():编译失败:字符类中偏移量的范围无效

    预先感谢您花时间帮助解决此问题 preg match 编译失败 session php 第 278 行偏移量 20 处的字符类范围无效 经过几个月的工作 在我们的服务器上进行 PHP 升级后 它突然停止工作了 这是代码 else Spruc
  • 适用于真正复杂查询的 ORM 解决方案

    在这样复杂的情况下 人们可以 应该使用任何 ORM 解决方案吗 这可以用以下方法完成吗Propel or Doctrine 目前我正在使用 Propel 所以如果有 Propel 解决方案 我会很高兴 如果我使用 propel 进行直接查询
  • Javascript crc32 函数和 PHP crc32 与 UTF8 不匹配

    我一直在尝试从 PHP 获取 crc32 函数来匹配 javascript 生成的结果 我已经使用了 4 个不同的 javascript crc32 库 1 http www webtoolkit info javascript crc32
  • Laravel 5:如何检索并显示属于特定类别的所有帖子

    我有3张桌子 user id username subreddits id name created at posts id title link user id subreddit id 问题是 我手动获取 subreddit 类别的 i
  • 使用 Composer CLI 将数据添加到额外属性

    根据文档extra的财产composer json 架构 https getcomposer org doc 04 schema md extra 允许设置 供脚本使用的任意额外数据 出于脚本目的 如果可以将数据添加到extra通过命令行属
  • 从多维数组中删除多个值

    我有一个来自 WordPress 的数组get posts 功能 posts array 15 0 gt object WP Post 285 24 ID gt int 253 post author gt string 1 1 post
  • 无法上传大于 8MB 的文件

    我正在尝试制作一个文件上传脚本 并且我已经为这个问题苦苦挣扎了一段时间 我已阅读并尝试了与此相关的所有答案 但无济于事 这是我在 php 中尝试过的 文件名 file uploads On upload max filesize 100M
  • 如何处理 file_get_contents() 中的 403 错误?

    我在使用时遇到 403 错误file get contents 我想这样处理这个错误 if required function file get contents url detects there is a 403 error do so
  • 致命错误:找不到类“App\PDO”

    当我尝试使用命名空间时出现此错误 I have namespace App 顶部 班级看起来像 class database function construct try this gt db new PDO lt here the err

随机推荐