Hướng dẫn how can i tell if https is enabled in php? - làm cách nào để biết https đã được bật trong php hay chưa?

Tôi có dịp tiến thêm một bước và xác định xem trang web tôi đang kết nối có khả năng SSL hay không [một dự án yêu cầu người dùng cho URL của họ và chúng tôi cần xác minh rằng họ đã cài đặt gói API của chúng tôi trên trang web HTTP hoặc HTTPS].

Đây là chức năng tôi sử dụng - về cơ bản, chỉ cần gọi URL qua Curl để xem HTTPS có hoạt động không!

function hasSSL[$url] 
{
    // take the URL down to the domain name
    $domain = parse_url[$url, PHP_URL_HOST];
    $ch = curl_init['//' . $domain];
    curl_setopt[$ch, CURLOPT_RETURNTRANSFER, 1];
    curl_setopt[$ch, CURLOPT_CUSTOMREQUEST, 'HEAD']; //its a  HEAD
    curl_setopt[$ch, CURLOPT_NOBODY, true];          // no body
    curl_setopt[$ch, CURLOPT_FOLLOWLOCATION, true];  // in case of redirects
    curl_setopt[$ch, CURLOPT_VERBOSE, 0]; //turn on if debugging
    curl_setopt[$ch, CURLOPT_HEADER, 1];     //head only wanted
    curl_setopt[$ch, CURLOPT_CONNECTTIMEOUT, 10];    // we dont want to wait forever
    curl_exec[$ch];
    $header = curl_getinfo[$ch, CURLINFO_HTTP_CODE];
    if [$header === 200] {
        return true;
    }
    return false;
}

Đây là cách đáng tin cậy nhất mà tôi đã tìm thấy không chỉ tìm hiểu xem bạn đang sử dụng HTTPS [như câu hỏi đặt ra], mà nếu bạn có thể [hoặc thậm chí nên] sử dụng HTTPS.

Lưu ý: Có thể [mặc dù không thực sự có khả năng ...] rằng một trang web có thể có các trang HTTP và HTTPS khác nhau [vì vậy nếu bạn được yêu cầu sử dụng HTTP, có lẽ bạn không cần phải thay đổi ..] Phần lớn các trang web là như nhau, và có lẽ nên định tuyến lại bạn, nhưng kiểm tra bổ sung này có việc sử dụng [chắc chắn như tôi đã nói, trong dự án mà người dùng nhập thông tin trang web của họ và bạn muốn đảm bảo từ phía máy chủ]

Mục đích của bài viết này là để kiểm tra xem trang này có được gọi từ ‘https, hay‘ http, chúng ta có thể sử dụng hai cách tiếp cận sau.

Cách tiếp cận 1: Kiểm tra xem kết nối có sử dụng SSL không và nếu giá trị của $ _Server [‘https,] được đặt, thì chúng ta có thể nói rằng kết nối được bảo mật và gọi từ‘ https. Nếu giá trị trống, điều này có nghĩa là giá trị được đặt thành ‘0, hoặc‘ tắt thì chúng ta có thể nói rằng kết nối không được bảo mật và trang được gọi từ ‘http. Check if the connection is using SSL and if the value of $_SERVER[‘HTTPS’] is set, then we can say that the connection is secured and called from ‘HTTPS’. If the value is empty, this means the value is set to ‘0’ or ‘off’ then we can say that the connection is not secured and the page is called from ‘HTTP’.

$ _Server là một mảng chứa tất cả thông tin về các tiêu đề, đường dẫn và vị trí tập lệnh yêu cầu. Nó sẽ có giá trị ‘không trống nếu yêu cầu được gửi qua HTTPS và trống hoặc‘ 0, nếu yêu cầu được gửi qua HTTP. is an array which contain all the information about request headers, paths, and script locations. It will have a ‘non-empty’ value if the request was sent through HTTPS and empty or ‘0’ if the request was sent through HTTP.

Syntax:

if [isset[$_SERVER['HTTPS']]]
{
 // page is called from https
 // Connection is secured
}
else
{
 // page is called from http
 // Connection is not secured
}

Flowchart:

Lưu đồ 1

Example:

PHP

Bài Viết Liên Quan

Chủ Đề