繁体   English   中英

有没有办法确保 POST 数据来自特定的主机?

[英]Is there anyway to ensure POST data is coming from a specific host?

我有一个 PHP 脚本,其中 POST 数据来自已知来源非常重要。 从“类似标题”来看,没有真正的方法可以做到这一点,因为标题可以被欺骗。 SERVER_ADDR也可以被欺骗吗? 这可以用作某种验证从哪里发布数据吗?

不考虑 PHP,依赖于 IP 地址,请求似乎来自是一种相当薄弱的安全形式。 您应该考虑使用 HTTPS 并将单个客户端证书分发给每个受信任的来源。

SSL 一开始可能会让人望而生畏,但你需要的东西一点也不复杂,学习它你会获得宝贵的技能。

if($_SERVER['REMOTE_ADDR'] != '127.0.0.10') {
    die('Not allowed!);
}
// rest of script...

$_SERVER['REMOTE_ADDR'] 不是来自客户端提供的标头(它由 apache 提供,来自网络堆栈)并且不能被欺骗。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM