- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
First name: 在寻找解决方案时,我发现了不同的方法,但它们都不适合我。例-6ren">
我想通过 url 以加密形式将表单数据发送到另一个域
<form action="http://localhost:85/abc/?<?php echo $_POST['name'] ?>" method="POST">
First name:<br>
<input type="text" name="name" placeholder="name">
<input type="submit" value="Submit">
</form>
在寻找解决方案时,我发现了不同的方法,但它们都不适合我。例如我发现如果我在表单中使用 GET 方法,那么我可以像这样发送数据
<form action="http://localhost:85/abc/?<?php echo $_GET['name'] ?>" method="GET">
它的工作 但是这个解决方案的问题是它不以加密形式发送数据 + 我不能将我的表单方法从 POST
更改为 GET
因为from 是由名为 caldera forms
的插件创建的。我只能更改其中的表单操作。
根据其他解决方案,我尝试使用这样的操作
<form action="http://localhost:85/abc/?<?php echo $_REQUEST['name'] ?>" method="POST">
但这对我也不起作用。任何建议我还能尝试什么。现在我正在本地主机上通过创建一个小表单而不是插件来测试它。
最佳答案
修改后的答案:
如果您对参数进行加密,那么将其作为 GET 或 POST 参数传递是无关紧要的,尽管我建议通过 POST 传递所有与安全相关的信息,而不是将其作为查询字符串的一部分发送(这是URL 中问号后的部分,即 http://localhost:85/abc/?Rishabh
中的 Rishabh
)因为查询字符串将在浏览器历史记录中可见和网络服务器日志,如所讨论的那样 here .
无论如何,这里至少有两个选择:
如果您使用 SSL 安全通信(“https://”而不是“http://”),所有数据,甚至查询字符串,都将被加密并发送到服务器,因此无需手动加密参数。仍然有拦截数据的方法(中间人攻击或伪造的 SSL 证书),但这是一种非常安全的数据传输方式。在您的服务器上需要一个 SSL 证书(可以是自签名的或由所谓的“CA 机构购买”)。如果您使用的是 Linux 和 Apache,here's an article explaining it 、this one 解释了它适用于 Windows 和 Apache。
发件人:
function doEncrypt($encrypt)
{
$crypt_key= '%{is}§a/G00d+kEy.F0r#3ncRypT!0n';
$iv= mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB), MCRYPT_RAND);
$crypted= mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $crypt_key, $encrypt, MCRYPT_MODE_ECB, $iv);
$encode= base64_encode($crypted);
return $encode;
}
$name= 'Rishabh';
$encoded= doEncrypt($name);
?>
<form action="http://localhost:85/abc/?<?php echo $encoded; ?>" method="GET">
接收器(位于您的 abc
目录中):
function doDecrypt($decrypt)
{
$crypt_key='%{is}§a/G00d+kEy.F0r#3ncRypT!0n';
$decoded= base64_decode($decrypt);
$iv= mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB), MCRYPT_RAND);
$decrypted = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $crypt_key, $decoded, MCRYPT_MODE_ECB, $iv);
return str_replace("\\0", '', $decrypted);
}
$name= doDecrypt($_REQUEST['QUERY_STRING']);
这是一个具有上述功能的工作示例:phpFiddle .
这里是 more info关于通过 curl 传输表单数据,编码和解码可以使用 mcrypt
完成以安全的方式扩展 PHP。
您的代码的另一条评论和解释:
<form action="http://localhost:85/abc/?<?php echo $_POST['name'] ?>" method="POST">
will output the variable
name
that has previously been posted as part of a form submit, the parameter will be send as part of the GET-/Query string of the form request, all other elements inside the form will be send as part of a form submit.
<form action="http://localhost:85/abc/?<?php echo $_GET['name'] ?>" method="GET">
will output the variable
name
that has been passed along as a GET-/query string parameter, again it will be part of the Query string of the form request. All other form elements will be send as part of the query string rather than as form submit.
<form action="http://localhost:85/abc/?<?php echo $_REQUEST['name'] ?>" method="POST">
will output a parameter
name
that has either been posted via form submit or as part of the query string, it will also be part of the query string of the form request. All other form elements will be send as part of the POST / form data, same as in example 1.
关于php - 将加密形式的表单数据重定向到另一个域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39364501/
我正在尝试使用谷歌浏览器的 Trace Event Profiling Tool分析我正在运行的 Node.js 应用程序。选择点样本后,我可以在三种 View 之间进行选择: 自上而下(树) 自上而
对于一个可能是菜鸟的问题,我们深表歉意,但尽管在 SO 上研究了大量教程和其他问题,但仍找不到答案。 我想做的很简单:显示一个包含大量数据库存储字符串的 Android ListView。我所说的“很
我已经开始了一个新元素的工作,并决定给 Foundation 5 一个 bash,看看它是什么样的。在创建带有水平字段的表单时,我在文档中注意到的第一件事是它们使用大量 div 来设置样式。所以我在下
我有一个 Windows 窗体用户控件,其中包含一个使用 BeginInvoke 委托(delegate)调用从单独线程更新的第 3 方图像显示控件。 在繁重的 CPU 负载下,UI 会锁定。当我附加
我有一堆严重依赖dom元素的JS代码。我目前使用的测试解决方案依赖于 Selenium ,但 AFAIK 无法正确评估 js 错误(addScript 错误不会导致您的测试失败,而 getEval 会
我正在制作一款基于滚动 2D map /图 block 的游戏。每个图 block (存储为图 block [21][11] - 每个 map 总共 231 个图 block )最多可以包含 21 个
考虑到以下情况,我是前端初学者: 某个 HTML 页面应该包含一个沉重的图像(例如 - 动画 gif),但我不想强制客户缓慢地等待它完全下载才能享受一个漂亮的页面,而是我更愿意给他看一个轻量级图像(例
我正在设计一个小软件,其中包括: 在互联网上获取资源, 一些用户交互(资源的快速编辑), 一些处理。 我想使用许多资源(它们都列在列表中)来这样做。每个都独立于其他。由于编辑部分很累,我想让用户(可能
我想比较两个理论场景。为了问题的目的,我简化了案例。但基本上它是您典型的生产者消费者场景。 (我关注的是消费者)。 我有一个很大的Queue dataQueue我必须将其传输给多个客户端。 那么让我们
我有一个二元分类问题,标签 0 和 1(少数)存在巨大不平衡。由于测试集带有标签 1 的行太少,因此我将训练测试设置为至少 70-30 或 60-40,因此仍然有重要的观察结果。由于我没有过多地衡量准
我是一名优秀的程序员,十分优秀!