web-dev-qa-db-pt.com

Altere http para https no código-fonte ao usar SSL

Recentemente, habilitei o Force_SSL em um dos meus sites Joomla (ativando "Forçar SSL" na Configuração Global), mas me deparei com problemas com o conteúdo bloqueado (conteúdo não SSL) das fontes do Google e vários scripts externos de JotForm .com (carregado por meio de "http: //" no modelo e no conteúdo).

Para esse site em particular, resolvi o problema revisando o código e alterando cada externo http://... referência a https://... ou apenas //..., mas minha pergunta é:

Isso poderia ser resolvido com mais facilidade ou eficiência, alterando automaticamente http://... para https://... no código fonte (com um plug-in) ou usando o .htaccess Arquivo?

5
johanpw

Você definitivamente deseja configurar um plugin para isso. Basicamente, o objetivo seria reescrever qualquer http:// ou https:// para somente //. Como bônus, só podemos fazer essa verificação dentro das tags (para não afetar os URLs apenas na página.

Um plugin do sistema com este método deve executar o truque:

public function onAfterRender() {
    $buffer = JResponse::getBody();
    $pattern = '~(<[^>]{0,}["\'])(https?://)~iU';
    $replacement = '$1//';
    $buffer = preg_replace($pattern, $replacement, $buffer);
    JResponse::setBody($buffer);
}

Provavelmente ainda vai pegar algo que você não quer que seja substituído por apenas //, Mas é um começo!

2
David Fritsch

Existe um ótimo plugin para isso feito pelo Yireo https://www.yireo.com/software/joomla-extensions/ssl-redirect

Joomla! pode ser configurado para usar SSL. Mas isso não significa que todas as suas páginas seguras sejam realmente mantidas em segurança. Este plug-in força o que é realmente necessário: HTTPS ou HTTP.

O melhor de tudo é que os desenvolvedores são muito receptivos ... o que faz um mundo de diferença para mim.

1
Joseph

Você não precisa usar o protocolo em um link js. Você pode usar // e o protocolo correto será selecionado para você.

Por exemplo.

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

Eu apenas faria uma busca/substituição global no meu código e deixaria assim, e usaria //src.js daqui para frente.

1
user101289