Ken*_*sen 5 php security ssl fopen man-in-the-middle
如果我使用PHP的fopen()功能从HTTPS网站检索数据,那就是所谓的安全HTTPS连接.即它是否提供针对中间人和窃听攻击的保护?
不是默认情况下,不是.
它总是提供某种形式的保护,防止简单的窃听攻击,因为数据将始终被加密(只要您连接的SSL服务器允许使用至少一个加密密码 - 是的,HTTPS中允许使用空加密密码connections:roll-eyes :)但是,默认情况下,它不会防止中间人,因为它不会验证服务器的证书,因此您无法确信已连接到目标服务器.
可以打开证书验证.为此,您需要提供根证书包并使用第四个参数,以fopen允许您指定流上下文.流上下文允许您修改流的行为.下面的示例切换会导致证书针对指定捆绑文件中的根证书进行验证.
$context = stream_context_create( array(
'ssl' => array(
'cafile' => 'ca_bundle.crt',
'verify_peer' => true
)
));
$file = fopen( $url, 'r', false, $context );
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
709 次 |
| 最近记录: |