在 URL 中发送参数的最佳且安全的方法

2024-03-16

我正在开发一个网站,该网站具有根据 id 更新和删除数据的功能。现在我担心的是我的网址是

www.example.com/public/controller/action/1

如果行动是delete,任何人都可以change id from 1 to 2url 中的 id 为 2 的数据将被删除。保持流量安全的最佳方法是什么?我正在使用 Zf2 和 Doctrine2...请提出任何建议!此外,我将 id 隐藏在字段中,任何人都可以使用 firebug 来更改字段中的值,有什么方法可以保护数据免受这种情况的影响吗?

任何加密解密方式都会使其安全,就像有人甚至编辑加密值一样,解密后不会产生所需的 id 吗?哪一个会好呢?


您应该少担心当人们更改 URL 中的参数或尝试侵入您的 HTML(隐藏字段)时会发生什么,而更应该担心您的用户实际上被允许执行的操作。

如果允许管理员删除所有posts例如,那么他是否改变并不重要domain.com/post/delete/1 into domain.com/post/delete/42。如果管理员应该删除他们能删除的所有内容。所以让他们随心所欲地改变它。

然而,如果管理员只被允许获得对自己条目的管理权限,那么您需要将其纳入您的服务层。服务层将检查当前用户针对当前请求的对象的权限。我个人最喜欢的是ZfcRbac https://github.com/ZF-Commons/zfc-rbac.

然而,如果您想让人们更难实际更改 ID,那么您应该为每个条目指定一个唯一的哈希值。例如,网址将是domain.com/post/delete/12acd-4a7f7c6-4a7f7c6-12acd-4a7f7c6或类似的东西。

TL/DR不要担心当人们更改 URL/HTML 中的内容时会发生什么,只需担心一般的身份验证和权限。

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

在 URL 中发送参数的最佳且安全的方法 的相关文章

  • 如何从 Laravel 中的表中选择所有列名称?

    我试图从表中获取所有列名Teller 功能 public function getTableColumns tables return DB select DB raw SELECT COLUMN NAME DATA TYPE COLUMN
  • Zend Framework 生成唯一的字符串

    我想生成一个唯一的 4 6 个字符长的字母数字字符串 以便与每个记录 用户 一起保存在数据库中 db 字段具有唯一索引 因此尝试保存预先存在的字符串会生成错误 现在我正在生成一个随机字符串并使用 try catch 因此在添加新记录时如果抛
  • 简单的 PHP 条件帮助: if($Var1 = in list($List) and $Cond2) - 这可能吗?

    这是一个可能的功能吗 我需要检查一个变量是否存在于我需要检查的变量列表中 并且 cond2 是否为 true 例如 if row name 1 2 3 Cond2 doThis 它对我不起作用 我在复制粘贴中更改的只是我的列表和变量名称 i
  • 删除PHP字符串中所有不匹配的字符?

    我有一个文本 我想从中删除所有不属于以下字符的字符 所需字符 0123456789 abcdefghijklmnopqrstuvwxyz n 最后一个是我确实想保留的 n 换行符 要匹配除列出的字符之外的所有字符 请使用反转字符集 http
  • 单词之间没有空格的语言(例如亚洲语言)中的断词?

    我想让 MySQL 全文搜索适用于日语和中文文本以及任何其他语言 问题在于这些语言以及可能其他语言通常在单词之间没有空格 当您必须键入与文本中相同的句子时 搜索没有用 我不能只在每个字符之间添加空格 因为英语也必须有效 我想用 PHP 或
  • 如何使用 phpunit 运行单个测试方法?

    我正在努力运行一个名为testSaveAndDrop在文件中escalation EscalationGroupTest php with phpunit 我尝试了以下组合 phpunit EscalationGroupTest escal
  • 生成大随机数 php [重复]

    这个问题在这里已经有答案了 我想使用 PHP 生成一个包含 75 个字符的数字 我到处寻找 但一无所获 除了这个 http dailycoding com tools RandomNumber aspx http dailycoding c
  • 强化文件中的跨站脚本

    我在控制器中有以下代码 参数 base64String fileName 是从浏览器发送的 var fileContent Convert FromBase64String base64String return File fileCont
  • Woocommerce 让产品显示在存档页面中

    我正在尝试让所有产品显示在我商店的存档页面中 我想知道他们的id我正在使用我的一个钩子 它在 wp head 上运行并检查 if is product category 我想以某种方式访问 产品的查询并获取它们的 ID if is prod
  • 为什么我需要结束 ob_start()?

    php 文档建议我应该用 ob end flush 结束每个 ob start 我在网站的每个页面上使用一个 只是为了允许我在应用程序中的任何位置使用 firephp 日志方法 该应用程序运行良好 但我想知道是否有任何我不知道的东西可能有害
  • 如何在原则 2 迁移中删除外键

    我想在原则 2 迁移中删除外键 但没有 dropForeignKeyConstraint 有谁知道怎么丢掉吗 public function down Schema schema table schema gt getTable table
  • 检查 JavaScript 字符串是否为 URL

    JavaScript 有没有办法检查字符串是否是 URL 正则表达式被排除在外 因为 URL 很可能是这样写的stackoverflow 也就是说它可能没有 com www or http 如果你想检查一个字符串是否是有效的 HTTP UR
  • PHP 脚本可以在终端中运行,但不能在浏览器中运行

    我正在尝试执行exec命令 但我遇到了问题 当我运行以下代码时 当我通过浏览器运行它时它不起作用 但如果我把输出 str将其复制并粘贴到终端中 它工作得很好 造成这种情况的原因是什么 我该如何解决 目前我正在运行localhost php
  • Woocommerce 结账自定义选择字段

    我有以下功能 将选择列表添加到 woo commerce 结账表单中 woocommerce form field airport pickup array type gt select class gt array airport pic
  • 使用 Ajax.Request 将 JSON 从浏览器传递到 PHP 的最佳方法

    您好 我有一个 JSON 对象 它是一个二维数组 我需要使用 Ajax Request 将其传递给 PHP 我知道的唯一方法 现在我使用js函数手动序列化我的数组 并获取以下格式的数据 s 1 d 3 4等 我的问题是 有没有办法更直接 有
  • Mac 应用程序商店 - 尝试让加密发挥作用。 。 。我缺少什么?

    我正在尝试使用 Alan Quartermain 的解决方案 如该问题所链接 Mac App Store 收据验证码 https stackoverflow com questions 4261348 mac app store recei
  • CURL 中的 data-urlencode 是什么意思?

    我搜索了很多个小时试图弄清楚 php curl 中的 data urlencode 是什么 我尝试过这个 但我认为这是不对的 xmlpost object1 file https www lob com goblue pdf 在文档中是 d
  • 如何在 PHP 中从 IP 地址/国家/地区名称查找时区 ID?

    谁能告诉我 PHP 中是否有任何方法可以从 IP 地址或国家 地区名称获取时区区域 例如 亚洲 加尔各答 描述 我正在尝试根据他 她的国家 地区设置用户时区 我从他的 IP 地址获取用户所在国家 地区 但我需要该国家 地区的时区区域 例如
  • 为什么 Composer 降级了我的包?

    php composer phar update这样做了 删除了 2 3 0 软件包并安装了整个 2 2 5 Zend Framework php composer phar update Loading composer reposito
  • 如何使用 PHPExcel 库从 Excel 获取日期

    我正在尝试使用 PHPExcel 从 Excel 获取日期 但我没有得到日期 我得到的字符串值不是 1970 以来的秒数 我尝试过的代码是 InvDate trim excel gt getActiveSheet gt getCell B

随机推荐

  • .NET:AssemblyVersionAttribute 中的大修订号

    我们约定将我们的构建版本控制为 主要 次要 微 修订 例如2 1 2 33546 我们的构建脚本会自动更新包含以下内容的 AssemblyInfo cs 文件 assembly AssemblyVersion x y z w 为了将版本号嵌
  • 如何在 C# 模块中嵌入 ms-access 表单?

    我们开发了一个相当重的 ms access 应用程序 有大约 300 个表单 是的 当代码实例化这些表单 而不仅仅是 打开 它们 时 我们可以在屏幕上显示同一表单的多个实例 为了绕过 VBA 的限制及其对一些面向对象概念 例如继承 接口 封
  • 如何在 scala 中使用 Resilience4J

    我想在调用 api 函数中使用 Resilience4J 的重试逻辑 但出现以下错误 如何解决此问题 val reversalRequestResult Decorators ofSupplier gt determinationServi
  • Laravel homestead 多个站点选择哪个本地可访问

    我在 laravel homestead 中有多个站点 现在 我想通过本地网络中的 IP 访问特定站点 但我总是得到我不想要的网站 家园 yaml sites map mdb local to home vagrant code mdb p
  • 在 Scala 中,我如何以无状态、功能性的方式对银行账户进行建模?

    在面向对象的范式下 你可以有类似的东西 class BankAccount balance Double def deposit def withdraw 我想知道你如何在函数范式中做等效的事情 让 BankAccount 类中的每个方法返
  • 如何为发布的EXE(.Net Core)添加版权

    如何将版权 公司信息添加到发布 Net Core 应用程序时生成的 EXE 中 实际上 通过在 csproj 中添加这些信息 生成的 DLL 会被更新 但 EXE 不会被更新 右键单击解决方案中的项目 选择 包 选项卡下的 属性 更改公司和
  • 如何使用装饰器计算函数调用次数?

    我正在刷新我对一些我还没有得到的Python功能的记忆 我正在从中学习这个Python教程 http www python course eu python3 decorators php还有一个我不完全理解的例子 这是关于装饰器计算对函数
  • JFormattedTextField 问题

    1 如何在不使用包含在invokeLater 中的Caret或Focus的情况下将Cursor设置为0位置 可以通过使用 camickr轻松解决格式化文本字段提示 http tips4java wordpress com 2010 02 2
  • 停止 Unicorn 服务器进程运行的最佳方法是什么?

    停止 Unicorn 服务器进程运行的最佳方法是什么 每当我尝试使用它来阻止它时kill p 90234这是行不通的 这很可能是我做错了 Thanks 看看独角兽信号页面 http unicorn bogomips org SIGNALS
  • 配置 org.hibernate.SQL 记录器时,Logback 显示 DEBUG 输出,根目录位于 INFO 级别

    为什么 logback 允许通过设置为 INFO 级别的根记录器进行 DEBUG 输出 上下文是一个使用 Hibernate 的 spring boot starter 项目 在版本 1 2 0 中 POM 命名为 logback clas
  • 带有动态Where子句的Android rawquery

    我正在尝试在 Android 中执行 SQL 查询 如下所示 SELECT FROM Flashcards WHERE category Anatomy OR category Surgery AND difficulty Easy OR
  • 在 Xamarin Android 中访问 UI 线程

    我的应用程序发送和接收 TCP 字符串 这些字符串之一是根据该字符串使对象可见 我当前的代码给出System NullReferenceException has been thrown Object reference not set t
  • jQuery Datatable:标题和搜索在同一行

    目前我的 jQuery 数据表如下所示 我希望历史标题和搜索栏位于同一行 我已经实现了标题和表格 如下所示 h2 History h2 table class table style width 100 thead tr tr thead
  • 如何在我的控制器中使用 Spring HttpRequest?

    我这样设置了测试 SpringBootTest AutoConfigureMockMvc RunWith SpringRunner class public class PublicControllerTest Autowired priv
  • 创建文件夹中每个文件内容的索引

    我正在用Python 制作一个搜索工具 其目标是能够按内容搜索文件 我们主要谈论源文件 文本文件 而不是图像 二进制文件 即使在元数据中搜索将是一个很大的改进 目前我不使用正则表达式 随意的纯文本 这部分算法效果很好 问题是我意识到我主要在
  • 为经典 asp 站点启用日志记录

    我继承了一个经典的 ASP 项目并将其部署在 IIS 7 5 上 我可以访问该网站 但在某些时候我会收到通用 500 错误页面 我想知道发生了什么 所以我认为最好是查看日志 在 c WINDOWS system32 LogFiles 和 c
  • 当RID在SQL Server中遇到相同行时汇总数量

    我尝试了几种选择 但未能得到我想要显示的确切答案 我希望从这里得到想法 以下是我选择进入后的最后温度 RID LOTID SAVID QTY A1278 G926 87 A1278 1 Y976 D958 G 108 A1278 T898
  • 如何在 Django 中为用户创建注册表单

    Django 创建用户的方式是什么 我不是在谈论超级用户 只是一个简单的用户表单和创建帐户 Django 文档很好地涵盖了身份验证主题 并且 Django 本身附带了用于登录 注销 密码更改和重置的视图 对于注册 您必须创建自己的视图 如下
  • 将聊天服务器实现为 WebService

    我有一个学校项目 我必须在其中实现一个聊天应用程序 其服务器将是一个 java web 服务 问题是 我一直认为 Web 服务是调用远程功能的一种方式 而且我不知道如何在 Web 服务上保持 会话 活动 也不知道如何跟踪当前处于活动状态的所
  • 在 URL 中发送参数的最佳且安全的方法

    我正在开发一个网站 该网站具有根据 id 更新和删除数据的功能 现在我担心的是我的网址是 www example com public controller action 1 如果行动是delete 任何人都可以change id from