从另一台服务器安全地从JS发送到PHP
send from JS to PHP securely from another server
我想将信息从我域上的JS安全地发送到另一个域中的.php文件,并且我希望.php只接受来自指定域的内容。
这是域A
$.ajax({
POST: "https://domain-b.com/ant.php",
data: mystring
})
这是域B
<?php
for ($i=0;$i<count($_POST);$i++){
#send to DB code
}
?>
BTW域A和域B都是单独的服务器。我的理解是,因为我使用的是HTTPS
——安全加密发送的数据,但我看到任何人都可以从任何地方向.php域发送信息。我想防止这种情况发生。我曾想过在两者之间插入一个代码,就像密码一样,但当我将其插入JS时,任何人都可以看到它,所以没有用。
是的,使用https将加密数据。
要检查请求声称来自哪里,可以检查$_SERVER['HTTP_REFERER']
。然而,这可能是伪造的,而且不可靠。
我会使用PHP会话。服务器A设置会话ID。然后,服务器B可以从请求中读取会话ID,以验证用户是否来自服务器A。多个服务器可以共享会话数据。请参阅如何在多个apache服务器上管理单个PHP5会话?
当您从服务器发送post请求时。尝试在数据中发送密钥。并且只有当密钥匹配时才运行DB代码。
<?php $_SESSION['key'] = md5(uniqid());
<input type="hidden" value="<?php echo $_SESSION['key']; ?>" name="key">
每次用户刷新页面时都会生成一个新的密钥。并且它将因用户而异。
$.ajax({
POST: "https://domain-b.com/ant.php",
Data: mystring // contains secret key
})
php服务器
<?php
$Key //your secret key
if($_SESSION['key'] == key in form data){
for ($i=0;$i<count($_POST);$i++){
#send to DB code
}
}
?>
如果我理解正确的话。这应该很有帮助:)
相关文章:
- 为vis.js(PHP到JavaScript)准备一个数组
- 当用HTML5+JS+PHP设计发送到电子邮件的表单时,需要采取哪些良好的安全预防措施
- AJAX/JS/PHP:如何替换发送到PHP文件的文件中的文本,并传递成功属性
- jQuery/JS/PHP - 仅在提交后禁用表单和提交按钮
- 一个简单的JS-PHP验证(或者我是这么认为的)
- 使用相同文件的 Html/JS/PHP 两个页面看起来不同(仅在 chrome 中)
- AES - Crypto JS & PHP
- PHP 无法调用 shell 脚本 (js -> php -> sh)
- JS & PHP Interaction
- JS/PHP cross urlencoding and urldecoding
- 为什么这个 js-php 生成的位置引用在 IE8 中不起作用
- Js+PHP:从文本文件中读取值
- Ajax调用JS+PHP不起作用
- JS/PHP复选框名称
- 如何检查是否使用html/js/php等创建了cookie
- 如何在JS/PHP的Microtime中从服务器时间倒计时到最接近的半小时
- 在Nginx上运行PHP和Node.js(PHP的PHP扩展文件,Node的html扩展文件)
- Facebook JS/PHP SDK
- js/php with include files
- Angular.js+PHP:如果在ngSanitized html模板内,则不执行Angular表达式