В SSL, как изящно обрабатывать IMG SRC из https URL, который перенаправляет на http - PullRequest
0 голосов
/ 11 октября 2018

У меня есть сайт PHP (который использует HTTPS), который извлекает содержимое блога HTML из API.

Иногда содержимое блога содержит img теги.В редких случаях тег src img может указывать на URL-адрес https, который является перенаправлением на URL-адрес http.

Поэтому, когда посетитель моего сайта загружаетНа странице браузера (например, Firefox) в строке URL-адреса указывается:

Соединение не защищено

Некоторые части этой страницы не защищены (например, изображения).

Что я могу сделать, чтобы мои посетители всегда имели полный https?

Есть ли какой-нибудь способ, которым мой PHP или javascript мог бы превентивно обнаружить, что img src перенаправит на http-URL и просто пропустит этот тег (запретит его загрузку)?

1 Ответ

0 голосов
/ 11 октября 2018

Очевидно, что принимать HTTP-соединения в HTML ваших клиентов неприемлемо, поскольку это может быть проблемой безопасности.Поэтому я могу подумать о двух хороших возможностях решения этой проблемы:

1) Вы анализируете HTML-код из API, переходите по всем ссылкам на изображения с помощью CURL, проверяете, перенаправлен ли URL (и кэшируетерезультат, потому что вы, скорее всего, не хотите выполнять это дорогое действие при каждом запросе)

Скорее всего, вы сейчас спросите, как это сделать.Хорошо: Либо вы отключаете перенаправление скручивания и проверяете, возвращено ли что-то еще, чем статус 200, и снимаете изображение в случае, если нет.Правильные настройки должны быть:

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, false);

Или вы проверяете окончательный URL перенаправления с помощью:

$redirectURL = curl_getinfo($ch,CURLINFO_EFFECTIVE_URL );

Этот вопрос должен быть очень полезным для вас: Как я могу найти, гдеЯ буду перенаправлен с использованием cURL?

2) Вы анализируете HTML-код из API, извлекаете удаленные изображения через CURL, тестируете и сохраняете их локально и заменяете URL-адреса src на те, чтовашего сервера

Оба метода могут быть хорошим способом решения вашей проблемы в зависимости от того, как часто нужно извлекать это удаленное содержимое и сколько ресурсов у вас есть.В большинстве случаев наиболее вероятен метод 1).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...