gpt4 book ai didi

php - Delphi 应用程序的 SSL 证书 - 是否需要启用安全性?

转载 作者:太空宇宙 更新时间:2023-11-03 12:56:22 26 4
gpt4 key购买 nike

所以我今天刚刚安装了 XAMPP,我注意到 index.php 有一个检查,看它是否通过 HTTPS 访问。在此之前,我认为要使用 SSL 安全性,您需要证书,但现在我怀疑了。

在这一点上(请纠正我,这就是这个问题的全部意义!),我自己的研究使我相信证书只提供有关您正在访问的位置的信息。如果未找到证书,则由客户端确定他/她是否信任该连接。

XAMPP 索引页包含此检查:

<?php
if (!empty($_SERVER['HTTPS']) && ('on' == $_SERVER['HTTPS'])) {
$uri = 'https://';
} else {
$uri = 'http://';
}
$uri .= $_SERVER['HTTP_HOST'];
header('Location: '.$uri.'/xampp/');
exit;
?>

好的,所以我通过 https://localhost 和 Firefox“你信任这个网站吗?”访问我的本地主机页面出现(问题是:我可以相信自己吗?;))。

之后,我创建了自己的小test.php,代码如下:

<?php
echo "Hi. \n";
if(isset($_POST['firstname']) && isset($_POST['lastname']))
{
echo "Your Firstname is ".$_POST['firstname']." and your Lastname is ".$_POST['lastname'];
echo "\r\n\r\n";
if (!empty($_SERVER['HTTPS']) && ('on' == $_SERVER['HTTPS'])) {
echo "You are using SSL, arentcha? :)";
} else {
echo "Hmm.. No SSL!";
}

}

?>

然后我创建了一个连接到 http://localhost/test.phphttps://localhost/test.php 的 Delphi 应用程序,以及http://jeffijoe.com/test.phphttps://jeffijoe.com/test.php 带有 TIdHTTP 控件(和对于 SSL,我将 TIdSSLIOHandlerSocketOpenSSL 连接到 TIdHTTPIOHandler 属性。

代码如下:

Var
Src : TStringlist;
location: String;
begin


if RadioButton1.Checked then
location := 'localhost' else location := 'jeffijoe.com';

if RadioButton3.Checked then
Protocol := 'http' else Protocol := 'https';

Memo1.Clear;

Src := TStringlist.Create;
try
Src.Add('firstname=Jeff&lastname=Hansen');
Memo1.Text := IdHTTP1.Post(Protocol+'://'+location+'/test.php',Src);
finally
Src.Free;
end;

end;

结果如下:

http://localhost/test.php - 预期输出

https://localhost/test.php - 预期输出(它知道我正在使用 HTTPS!)

http://jeffijoe.com/test.php - 预期输出

https://jeffijoe.com/test.php - 失败! 404 未找到!

我的 jeffijoe.com 托管在一个普通的共享托管帐户上。

所以 - 问题是:本地主机的 HTTPS 真的“安全”吗?与 Jeffijoe.com 位置的 HTTPS 连接为何失败,而我的本地主机上却没有?证书怎么样?他们是必需的吗?是否可以设置安全连接而无需购买价格过高的证书?

最佳答案

连接对嗅探器是安全的,即通过网络传输的内容是加密的。但是由于证书是自签名的,不能保证对方真的是他们假装的人,这正是证书的意义所在:第三方保证对方已经被验证为他们假装的人.

它在您的本地 XAMPP 机器上运行的原因是它带有所谓的自签名证书和管理 https 通信的服务器基础设施,这两者在您的托管站点上很可能缺乏。

最后,这取决于您想要实现的目标:如果通信只需要安全以防止嗅探,那么自签名证书就可以正常工作。如果你需要证明你是你假装的人,你需要专业公司颁发的证书。

编辑:为了使这个练习更有趣:证书系统可以双向工作,即服务器向您证明它是真实的,并且由于所谓的客户端证书,您可以向服务器证明您是谁假装是。根据您的用例,探索客户端证书可能非常有用,但请注意这并不容易。

关于php - Delphi 应用程序的 SSL 证书 - 是否需要启用安全性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6634623/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com