使用适用于 SQL Server 的 PHP 且不使用 PDO 来防止 SQL 注入 [重复]

2023-11-22

我可以尽可能地清理和验证我的输入,但这绝对不能涵盖所有内容,如果我足够努力、足够彻底地擦洗,我将完全擦除我的输入。

我意识到有很多关于这个主题的帖子,但似乎他们总是回到 PDO 或 Mysql(是的 - 即使有人发布有关 SQL Server 的帖子,他们收到的一半答案都表明 mysql_real_escape_string - 疯狂的世界)。我也无法使用。即使当我打字并且屏幕右侧出现小“类似问题”时,我仍然不断点击各种链接,但没有任何内容可以完全回答我的问题。

我正在使用 SQL Server。我正在使用 PHP 5.2.4。我不能使用 PDO(因为......?我的老板说“不”,这就是足够的理由)。

有没有一种方法可以编写一种安全的方法来准备我自己的查询语句?

过去,我曾尝试在 PHP 中构建这样的语句。 (其中 $input_* 变量是某种形式的用户输入,或者我将它们从某些东西中提取出来)

$query = "
    declare @varID  int
    declare @var1   int
    declare @var2   varchar(100) 

    set @varID = cast('$input_ID' as int)
    set @var1  = cast('$input_var1' as int)
    set @var2  = cast('$input_var2' as varchar(100)) 

    update table_name_goes_here
         set var1 = @var1,  
             var2 = @var2
         where ID = @varID;
    ";
 # $query is then executed 

但这也可能很脆弱......显然......我做的最后一件事就是删除所有必要的标点符号(有时我知道他们没有理由使用某些字符)

但必须有其他选择......对吧?和mssql_bind仅适用于存储过程,这是一个明确的选择,但我不确定我是否想自愿扩大我的职责,通过制作插入/更新过程来包括实际数据库中的维护。


我想说“因为老板说‘不’”是一个可怕的理由。告诉他(她?)他错了。我对 PHP 知之甚少,但无论哪种语言,防止注入的唯一万无一失的方法是通过参数化查询或存储过程。如果在 PHP 中执行此操作的唯一方法是使用 PDO,那么就使用 PDO。

以下是您使用 PDO 的理由:https://www.owasp.org/index.php/SQL_Injection_Prevention_Cheat_Sheet

http://msdn.microsoft.com/en-us/magazine/cc163917.aspx

为什么代码中会有 SQL 呢?如果是在数据库中,维护起来就容易多了,一般是存储过程的形式。

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

使用适用于 SQL Server 的 PHP 且不使用 PDO 来防止 SQL 注入 [重复] 的相关文章

  • 如何找到数组中的最小数字并返回该数组的主索引?

    我有一个如下所示的数组 我想找到 diff 索引中数字最小的数组 所以在这种情况下 我想取回数组 7 我需要的只是数组编号 即 7 而不是任何其他信息 我知道我可以使用 array column 轻松找到最小的数字 但如何返回整个数组索引
  • laravel/lumen-installer 安装失败:guzzlehttp/guzzle 锁定在 6.3.0

    我正在尝试通过命令安装 Lumencomposer global require laravel lumen installer 但在终端上抛出以下错误 Changed current directory to home lykos con
  • 将视图加载到变量中

    有什么方法可以将 PHP 文件的内容放入变量中吗 我想做这个 msg this gt load gt view some view 但当我这样做时 msg is NULL 是否可以 有可能的 msg this gt load gt view
  • SQL Server - 即使在回滚的情况下如何确保标识字段正确增加

    在 SQL Server 中 如果涉及插入新行的事务被回滚 则标识字段中的数字将被跳过 例如 如果Foos表是99 然后我们尝试插入一个新的Foo记录但回滚 然后 ID 100 被 用完 下一个Foo行编号为 101 有什么方法可以改变这种
  • 干预/图像上传错误{{图像源不可读}}

    我正在尝试添加个人资料图片上传拉拉维尔 5 1 我用的是Intervention Image打包但当我尝试上传图像时出现此错误 AbstractDecoder php 第 302 行中的 NotReadableException 图像源不可
  • PHP 中 glob() 中的转义空格?

    我在 PHP 中有以下函数 除了名称中带有空格的文件外 该函数运行良好 Good picture jpg例如 这里是 function getphotolist currentalbum photos glob currentalbum J
  • 从 Joomla 3 url 中删除文章 ID

    我正在尝试从 Joomla 3 URL 中删除文章 ID 我四处搜寻 得到的答复是 组件 com content router php 将 0 更改为 1 advanced params gt get sef advanced link 1
  • 将行分组在一列上并与其他列形成嵌套子数组

    这是我试图处理的事情 我的数组看起来像这样并且有重复项 products product name gt Adidas1 address gt street 2 product name gt Adidas2 address gt stre
  • 从 https 切换到 http 时违反 RewriteRule

    我写了很多重写规则 in my htaccess文件 但是当我从https to http页面 它不遵守这些规则 NOTE 本地主机上一切正常 问题出在服务器上 UPDATE 这是我的website http www charityrumm
  • 创建验证电子邮件的机制

    我的网站上已经有一个高级用户登录 注册系统 colemansystems psm2 co uk http colemansystems psm2 co uk 但是 我希望向新用户发送一封电子邮件以验证他们的电子邮件地址 如果他们没有点击该链
  • 使用 FTS 进行搜索相对于在索引列上使用 LIKE 进行搜索的性能有何提升)?

    质疑 全文搜索sql server 2005 https stackoverflow com questions 3627583 full text search sql server 2005 3824263 3824263 与在索引列上
  • 更新 xampp 中的 ICU 扩展吗?

    我在跑xampp我需要升级ICU php intl 扩展 到最新版本 我下载了54从 ICU 页面 但不确定如何升级它 有一个bin include and lib文件夹 我应该把这些文件放在哪里 我还需要做其他事情吗 要升级 XAMP 安
  • 数据库设计 - “推”模型,或写时扇出

    背景信息 我正在尝试检索我关注的人的图像 按最新时间排序 它就像 Twitter 新闻源 显示您朋友的最新动态 Plans 目前我只需要考虑一项 那就是图像 将来我计划分析用户的行为并将他们可能喜欢的其他图像添加到他们的提要中等 http
  • PHP 将日期与今天的日期进行比较

    我正在尝试采用以下格式的信用卡到期日期mm yy并查看该日期是否已过 以便我知道信用卡是否已过期 如果已经过期 则一类expired被插入到 tr 我的代码结果检查了 05 16 的样本日期 并且脚本显示该卡尚未过期 而显然该卡已经使用了一
  • 将语句插入 SQL Server 数据库

    最近几天我试图找到这个错误 但没有成功 我正在尝试在数据库中插入一个新行 一切都很顺利 没有错误 也没有程序崩溃 My INSERT声明如下 INSERT INTO Polozaj Znesek Uporabnik Cas Kupec Po
  • 在 Slim Framework 3 中访问课堂上的应用程序

    当路由位于与 index php 不同的类中时 我无法理解如何访问 Slim 的实例 当使用 Slim Framework 2 时 我总是使用以下内容 但它在 Slim 3 中不起作用 this gt app Slim Slim getIn
  • Symfony2 / FOSUserBundle - 登录后根据角色重定向

    我想根据用户的角色自定义登录后的重定向 仅供参考 我用symfony 2 8 我创建这个类
  • 重复密码在 Yii2 中不起作用

    我在模型中编写的规则如下 public password repeat inheritdoc public function rules return password required password string min gt 6 p
  • PHP - While/Else 错误? [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我有以下
  • 通过jquery ajax()和serialize()提交html表单

    我想通过 jquery ajax 提交此表单 这是我所做的 但它不起作用 即表单正在提交并刷新页面 但我没有看到响应 即在同一页面上打印数组 HTML

随机推荐

  • 如何在 Javafx 中为 XML 文件创建常量变量

    堆栈窗格layoutY 70 0 prefHeight 479 0 我想创造价值观 70 0 and 479 0 static 在 Java 文件中 以便我可以将它们用于其他文件 这可能吗 如果您的常量是在类中定义的 public clas
  • 防止 ipython 将输出存储在 Out 变量中

    我目前正在使用 pandas 和 ipython 由于 pandas 数据帧在您执行操作时会被复制 因此每个单元的内存使用量都会增加 500 mb 我相信这是因为数据存储在Out变量 因为默认的 python 解释器不会发生这种情况 我如何
  • 自定义包含TakeWhile(),有更好的方法吗?

    我编写了一个自定义 LINQ 扩展方法来扩展TakeWhile 当谓词为假时 方法是包含的 而不是排除的 public static IEnumerable
  • `git rebase` 如何跳过其更改已经在上游的提交?

    git rebase 文档 says 如果上游分支已经包含您所做的更改 例如 因为您邮寄了上游应用的补丁 则该提交将被跳过 但 Git 是如何做到这一点的呢 假设任何提交X是提交的父级Y and diffXY是的结果git diff X Y
  • 将视频保存在创建的相册中

    我在 AppDelegate 方法中使用此代码创建了一个相册 NSString albumName 999Videos ALAssetsLibrary library ALAssetsLibrary alloc init library a
  • iPhone:CALayer + 3D 旋转 + 抗锯齿?

    iPhone SDK 问题 我正在屏幕上绘制 UIImageView 我以 3D 方式旋转了它并提供了一些透视 因此图像看起来像是以一定角度指向屏幕 一切都很好 现在的问题是生成的图片的边缘似乎根本没有抗锯齿 有人知道如何做到这一点吗 本质
  • 如何克隆()一个元素n次?

    我有一个想要附加的动态表
  • ViewPager 内的 ScrollView 不工作

    我有一个 ViewPager 活动 其中有选项卡式子项 带有回收器视图的孩子会滚动 虽然当我创建一个带有滚动视图的简单片段时它不起作用 这是主要活动片段
  • 任何在多个 div 元素中随机排列内容的方法

    我对 Javascript 比较陌生 想知道是否有一种快速的方法来随机播放多个内容中包含的内容 div 标签 例如 div span alpha span img src alpha jpg div div span beta span i
  • 如何在web.config中添加xml?

    我有一些复杂的数据 用于 xml 格式的应用程序配置 我想将此 xml 字符串保留在 web config 中 是否可以在 web config 中添加一个大的 xml 字符串并在任何地方的代码中获取它 如果您不想编写配置节处理程序 则可以
  • 在不使用 Terraform 文件配置程序的情况下将本地文件部署到实例

    与其他几位发布到 StackOverflow 的用户一样 我遇到了文件配置程序的问题 Terraform 文档说我们不应该依赖它们 解决文件配置程序 特别是本地配置文件和脚本 的最佳方法是什么 一种效果很好且不需要直接连接到实例的解决方案是
  • django-admin 自定义命令中的两个参数

    我有一个workingdjango admin 自定义命令 我用它来填充新信息的数据库 再说一次 一切正常 但是 我现在稍微更改了我的模型和函数 以接受两个参数作为元组 名字and姓氏 而不仅仅是 名字 下面的先前代码 工作 使用 mana
  • Visual Studio 2013 Windows Phone 模拟器未部署

    我正在使用 VS 2013 Express 并且有一个 Windows Phone 8 简单应用程序 当我开始使用任何模拟器调试应用程序时 它无法将 XAP 部署到模拟器中 10 分钟后出现错误消息 出现部署错误 继续吗 这是调试应用程序时
  • 在 Visual Studio 中更改“实现接口”模板

    我经常在 Visual Studio 2008 中使用 实现接口 快捷方式 我的 问题 是我希望 Visual Studio 使用String 别名而不是string在每一个例子中 由于我被迫使用字符串而不是字符串 这将为我节省大量时间 例
  • android.provider.Telephony 发生了什么?

    有谁知道发生了什么事android provider Telephony 它已经不在那里了 如果你读过this从 android developer 邮件列表中发帖 您可以看到android provider Telephony是开源版本的
  • 在 Java DOM 中获取节点的内部 XML 作为字符串

    我有一个 XML org w3c dom Node 如下所示
  • GCP Kubernetes 工作负载“没有最低可用性”

    背景 我正在尝试在 Google Cloud Platform 上设置 Bitcoin Core regtest pod 我借用了一些代码https gist github com zquestz 0007d1ede543478d44556
  • UICollectionView:组合布局禁用预取?

    我有一个非常简单的UICollectionView它使用组合布局轻松实现动态单元高度 不幸的是 这样做似乎会禁用内容预取UICollectionViewDataSourcePrefetching 在下面的示例代码中 collectionVi
  • Ruby 中括号周围的间距

    我最近在使路径正常工作时遇到了一些问题 事实证明 解决方案很简单 但我遇到了一个意想不到的问题 阻止了我实现它 erb 模板中包含的以下行可以完美运行 这个没有 在这种情况下 左括号前似乎不允许有空格 我得到的错误是这样的 app view
  • 使用适用于 SQL Server 的 PHP 且不使用 PDO 来防止 SQL 注入 [重复]

    这个问题在这里已经有答案了 我可以尽可能地清理和验证我的输入 但这绝对不能涵盖所有内容 如果我足够努力 足够彻底地擦洗 我将完全擦除我的输入 我意识到有很多关于这个主题的帖子 但似乎他们总是回到 PDO 或 Mysql 是的 即使有人发布有