PHP:嵌入另一个 URL 的 URL 的较短/模糊编码?

2024-03-04

我正在为自己编写一个脚本,它基本上可以让我在单个 get 请求的查询字符串中发送一个 URL 和两个整数维度。我使用 base64 对其进行编码,但它太长了,我担心 URL 可能会变得太大。

有谁知道另一种更短的方法吗?在 get 请求中收到时,它需要可解码,因此 md5/sha1 是不可能的。

谢谢你的时间。


Edit:抱歉 - 我应该更好地解释:好的,在我们的网站上,我们显示发布供审核的网站的屏幕截图。我们有自己的缩略图/屏幕截图服务器。我基本上会让图像标签包含一个编码字符串,该字符串存储要截取屏幕截图的 URL 以及要显示的图像的宽度/高度。然而,我不希望它以“原始文本”的形式让全世界看到。显然,base64 可以由任何人决定,但我们不希望普通人选择 URL 路径。实际上,我需要在单个 GET 请求中获取:url、宽度、高度。


由于您仅使用 base64 来混淆字符串,因此您可以使用其他内容来混淆它,例如 rot13 (或您自己的简单字母替换函数)。所以,urlencode(str_rot13($str))编码和str_rot13(urldecode($str))解码。

或者,要获得较短的 Base64 编码字符串,您可以在进行 Base64 编码之前压缩该字符串:base64_encode(gzencode($str, 9)) and gzdecode(base64_decode($str))解码。

或者,如果这主要是一个安全问题(您不介意人们看到 URL,您只是想防止人们对其进行黑客攻击),您可以使用普通的查询字符串变量传递这些参数,但附加一个哈希值以防止篡改。 IE。:

function getHash($url, $width, $height) {
  $secret = 'abcdefghijklmnopqrstuvwxyz whatever you want etc.';
  return sha1($url . $width . $height . $secret);
}

// So use this hash to to construct your URL querystring:
$hash = getHash($url, $width, $height);
$urlQuerystring = '?url='.urlencode($url).'&width='.(int) $width.
                  '&height='.(int) $height.'&hash='.$hash;

// Then in your code that processes the URL, check the hash first
if ($hash != getHash($url, $width, $height))
  // URL is invalid

(题外话:人们说你应该使用 POST 而不是 GET。如果所有这些 URL 所做的都是从数据库中获取屏幕截图来显示(即搜索查找),那么 GET 就很好而且是正确的。但如果调用这些 URL 实际上是执行一个操作,例如转到另一个站点,制作并存储屏幕截图,那么这就是 POST。顾名思义,GET 用于检索;POST 用于提交数据。如果您要在制作屏幕截图等昂贵的操作上使用 GET ,当 Google 等对这些 URL 建立索引时,您最终可能会拒绝访问您自己的网站。)

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

PHP:嵌入另一个 URL 的 URL 的较短/模糊编码? 的相关文章

  • ZipArchive 提取 - 单个文件

    我有以下代码 ipaFile path file ipa iconFilePath Payload myapp app email protected cdn cgi l email protection the pathway to my
  • 如何确定 OS X 中的文件编码?

    我正在尝试将一些 UTF 8 字符输入到 LaTeX 文件中TextMate http en wikipedia org wiki TextMate 它说它的默认编码是UTF 8 但LaTeX似乎不理解它们 Running cat my f
  • WordPress 安装中发现的恶意 PHP 代码有什么作用?

    我能够解码在一些 WordPress 文件中找到的以下 PHP 脚本 只是出于好奇 有人可以告诉我这段代码实际上是做什么的吗 看起来它已经以某种方式复制到同一服务器上的其他 WordPress 安装中
  • 重定向而不是 404 错误页面 - 状态代码不起作用 (Nginx)

    我目前正在迁移到 nginx 服务器 我尝试将其放入名为的 404 ErrorDocument 中404 php 如果我现在尝试访问http mydomain com 404 php 这按预期工作 它将我重定向到 Google 但是一旦我尝
  • 在 Drupal 中选择性地删除页面的样式表

    我正在尝试为首页制作不同的布局 在此过程中 我声明了名为 front page css 和 page front tpl php 的新样式表 我正在使用加载responsive sidebar css 的 Zen 子主题 我想删除 resp
  • 在python中设置区域设置编码

    我通过以下方式从 python 代码调用 java 程序 subprocess check output java classpath Users feralvam Programas semanticvectors 3 4 semanti
  • 如何使用 RewriteRule 来为 PHP 修改 $_SERVER['REQUEST_URI'] ?

    有了这个 htaccess RewriteEngine On RewriteRule foo foo 1 here I tried L PT C etc RewriteRule index php L 我已经尝试了第一个 RewriteRu
  • php exec 返回的结果比直接进入命令行要少

    我有一个 exec 命令 它的行为与通过 Penguinet 给 linux 的相同命令不同 res exec cd mnt mydirectory zcat log file gz echo res 当将命令直接放入命令行时 我在日志文件
  • filter_input() 何时删除 POST 变量的斜杠?

    我创建了一个小型 PHP 脚本 它在 PHP 5 2 17 的服务器上运行magic quotes gpc指令已启用 我没有对 php ini 文件的写访问权限 并且我想从用户输入中删除所有斜杠 即使magic quotes gpc指令被关
  • PHP 中的抽象类是什么?

    PHP 中的抽象类是什么 如何使用 抽象类是至少包含一个抽象方法的类 该方法中没有任何实际代码 只有名称和参数 并且已被标记为 抽象 这样做的目的是提供一种模板来继承并强制继承类实现抽象方法 因此 抽象类是介于常规类和纯接口之间的东西 此外
  • 如何使用php在mysql数据库中添加照片? [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我对 PH
  • 扫描 PHP 上传的病毒

    我目前正在使用以下代码来扫描作为申请表的一部分上传的文件 safe path escapeshellarg dir file command usr bin clamscan stdout safe path out int 1 exec
  • PHP函数返回值到html标签

    我想获取函数的返回值并将其显示到特定的id 在我的 Class php 中 我有一个名为 login 的函数 用于验证密码是否正确 不正确
  • 在 PHP 中使用数组来比较用户名/密码

    我有以下 php 脚本 其中有一个用户名和密码 Username user1 Password pass1 if isset POST submitform Clean up the input values foreach POST as
  • 除括号之间的内容外,所有内容均小写

    考虑以下字符串 LoReM FOO IPSUM dolor BAR Samet fooBar 我正在寻找一种方法来小写所有内容 除了 brackets 之间的内容应该被忽略 所以期望的输出是 lorem FOO ipsum dolor BA
  • PHP 相当于朋友或内部

    php 中是否有相当于 朋友 或 内部 的东西 如果没有 是否有任何模式可以遵循来实现这种行为 Edit 抱歉 但标准 Php 不是我想要的 我正在寻找类似于马戏团长所做的事情 我有一些类在后端进行 C 风格的系统调用 并且杂耍已经开始变得
  • 有关于 PHP 中的 V8JS 的文档吗?

    有没有关于V8JS的文档 我是否只需要标准 PHP 或一些扩展即可使用 V8JS 我将非常感谢有关 PHP 中的 V8JS 的任何信息 要求 PHP 5 3 3 和 V8 库和标头安装在正确的路径中 Install http www php
  • PHP 中的坏词过滤器?

    我正在用 PHP 编写一个坏词过滤器 我在数组中有一个坏词列表 方法 clean text 的写法如下 public static function cleanse text originalstring if self is sorted
  • 如何更改phpmyadmin MySQL的IP地址?

    我在 xampp 中更改了 apache 的 IP 地址 但无法连接到 MySQL 我认为问题是我的 apache 不在我的数据库的同一网络上 我的 apache 位于 192 168 1 10 而我的 MySQL 位于 127 0 0 1
  • 使用“AND”表达式构建动态 SQL,而不混淆嵌套条件?

    总的来说 我对 php 和编码相当陌生 我有一系列条件需要测试它们是否已设置 它们是 option1 option2 option3 if isset option1 if isset option2 if isset option3 qu

随机推荐

  • 递归 XSLT,第 2 部分

    好的 继续我的问题here https stackoverflow com questions 2907332 how can i write an xslt that will recursively include other file
  • 经常将 IRB 历史记录刷新到文件

    irb 可以将命令历史记录写入文件 但只有在 irb 会话结束时才会执行此操作 我想更频繁地写出我的命令历史记录 与每个命令 如 shell 历史记录 一样频繁 但不必如此频繁 是否有 irbrc 设置 或者我必须破解 irb 源 已经多次
  • 将鼠标悬停在图像上方的 Font Awesome 图标居中

    当鼠标悬停在图像上时 我试图将字体很棒的图标置于图像的中心 这是我的 HTML div class profile img container img src http s3 amazonaws com 37assets svn 765 d
  • 如何在 Xamarin Forms 中将 Android 日期选择器设置为微调器(而非日历)模式?

    在 Android 设备上的 Xamarin Forms 中选择日期选择器控件时 将显示日期选择器的日历模式视图 如何更改它以显示微调模式 我找到的唯一示例是更新我的 styles xml 这是我所拥有的 但不起作用
  • CSS 不同的链接样式

    据我所知 使用类似的东西 class a 与使用相同 class a link Right 另外 以下两种款式是一样的吗 class a focus class a hover 最后 下面的样式是鼠标按下时的颜色吧 class a acti
  • Zend Framework 2 - Hydrator 策略未响应且水合

    我基本上实现了这个策略 https github com zendframework zf2 pull 2072 主要区别是 我猜 我使用Doctrine2 调用构造函数类 打印测试回显 但两个函数extract and hydrate 不
  • LINQ:将 lambda 表达式作为参数传递以由方法执行和返回

    因此 场景如下 我有一系列不同的存储库类 每个类都可以使用独立的数据上下文或共享上下文 在使用隔离上下文的情况下 我想向基类添加一个方法 该方法允许我将 lambda 指定为参数 让该表达式由所选存储库的隔离上下文执行并返回 IQuerya
  • 如何设置 Bitmap.Width 和 Bitmap.height

    您好 我已经加载了位图 我需要设置自己的高度和宽度 bitmap height 100 但这个声明不允许我 因为它说 System Drawing Image Width cannot be assigned to it is read o
  • __del__() 如何干扰垃圾回收?

    I read class Account object def init self name balance self name name self balance balance self observers set def del se
  • 如何从 Jenkins 推送到 git?

    以下代码是 Jenkins 中的 执行 Shell 构建步骤 该作业从包含文件的存储库中提取ranger policies policies json 我想要做的是更新该文件 在本例中使用curl 命令 然后将更改提交到源代码管理并更新远程
  • Android模拟器中的相机

    我使用 android SDK 4 0 3 和 eclipse Indigo 我正在尝试开发一个使用相机的应用程序 当我拍照时 会出现以下消息 不幸的是 相机已经停止了 在 Eclipse 控制台中 模拟器 错误 camera client
  • 使用端口(例如 localhost:12345)访问 IPv6 可解析 URL 会导致 Strawberry Perl 5.30.1 中的错误地址

    在启用了 IPv6 的 Windows 10 下使用 Strawberry Perl 5 30 1 时 由于 Perl 的 DNS 解析器中似乎存在错误 因此无法正确解析带有端口号的 URL 对于以下测试 我们有一个简单的 Web 服务器
  • 测试类型是否是分配器的正确方法是什么?

    Writing allocator traits
  • 将可扩展性设计到应用程序中

    这句话是什么意思 将可扩展性设计到应用程序中 是否存在可以使应用程序更具可扩展性的设计模式 这个问题主要针对 Web 应用程序或基于 SOA 中间件的应用程序 当我想到 大规模应用程序 时 我想到了三个截然不同的事情 将在大型横向扩展集群
  • 使用 C# 计算每个句子中的单词数

    我需要创建一个程序来显示单词最多的句子 string st I like apples I like red apples I like red apples than green apples foreach string s in st
  • LINQ to SQL 与 ADO.Net

    LINQ to SQL 和 ADO net 之间有什么区别 ADO NET 是 NET Framework 的底层数据访问 API 很像 Java 中的 JDBC 它自 NET 第一个版本发布以来就已存在 LINQ to SQL 是一个基于
  • 连续 2d 切片上的 Numpy 向量化函数

    我有一个 3D numpy 数组 我想通过在沿轴的连续 2d 切片上执行函数并将生成的切片堆叠在一起来形成一个新的 3d 数组 显然有很多方法可以做到这一点 我想以最简洁的方式做到这一点 我认为这是可能的numpy vectorize 但这
  • 查找两个 C# 对象之间的属性差异

    我正在开发的项目需要在用户更改电子邮件 帐单地址等时进行一些简单的审核日志记录 我们正在使用的对象来自不同的来源 一个是 WCF 服务 另一个是 Web 服务 我已经使用反射实现了以下方法来查找两个不同对象上属性的更改 这会生成一个具有差异
  • 如何使用 Bower 作为包管理器获取 Less v.2.0.0 的 Rhino 版本

    我正在使用 less js 的 Rhino 版本 使用 Bower 将其提取到我的开发环境中 在 1 7 5 下 一切正常 bower 将获得所有不同的版本 Node 和 Rhino 版本都将存储在我的环境中 最近更新到 2 0 0 后 似
  • PHP:嵌入另一个 URL 的 URL 的较短/模糊编码?

    我正在为自己编写一个脚本 它基本上可以让我在单个 get 请求的查询字符串中发送一个 URL 和两个整数维度 我使用 base64 对其进行编码 但它太长了 我担心 URL 可能会变得太大 有谁知道另一种更短的方法吗 在 get 请求中收到