Pagina 1 di 2

Re: Immagini esterne e https

Inviato: mar 3 apr 2012, 15:59
da ZeroUno
quello che intendevo... ma a voi compaiono popup che lo dicono?
Su chromium compare un piccolo triangolino giallo sull'icona del lucchetto, su firefox solo se vado a cliccare su informazioni sulla pagina.

un conto invece è che ti compare un messaggio in rosso ogni volta che ti dice "la pagina è cifrata ma potrebbe essere non sicura" (scomodo tra l'altro perchè devi cliccare ogni volta, con chromium, 'si ok vai avanti lo stesso', e non è l'ideale per chi se la imposta come home), un conto è che ti compare che la pagina contiene oggetti che protetti o non protetti sono comunque esterni a slacky.

Piuttosto, ora compare il problema dei link interni al forum.
Io entro e navigo in https.
come vado a cliccare su
viewtopic.php?f=2&t=35567
mi rimanda ad una pagina http.
La soluzione al problema non la conosco.

edit: il problema degli oggetti esterni poi non è solo delle firme, ma anche di eventuali screenshot che carico per esempio su imageshack e linko quì.

Re: Immagini esterne e https

Inviato: mar 3 apr 2012, 16:15
da conraid
Lo so che è anche di eventuale allegati, ma le firme sono molte, gli allegati ogni tanto.

La soluzione al problema è usare link relativi invece che assoluti (ma bbcode non li accetta), o forzare https in qualche modo :-)

Re: Immagini esterne e https

Inviato: mar 3 apr 2012, 16:49
da ZeroUno
conraid ha scritto:La soluzione al problema è usare link relativi invece che assoluti (ma bbcode non li accetta)
Tuttavia il parser riconosce e trasforma automaticamente:

Codice: Seleziona tutto

http://www.slacky.eu/forum/viewtopic.php?f=2&t=35567
(messo senza bbcode) in

Codice: Seleziona tutto

<a class="postlink-local" href="http://www.slacky.eu/forum/viewtopic.php?f=2&t=35567">viewtopic.php?f=2&t=35567</a>
anzichè

Codice: Seleziona tutto

<a class="postlink" href="http://www.slacky.eu/forum/viewtopic.php?f=2&t=35567">http://www.slacky.eu/forum/viewtopic.php?f=2&t=35567</a>
ma solo se sei in http.

lo fa in includes/functions_content.php

Codice: Seleziona tutto

function make_clickable($text, $server_url = false, $class = 'postlink')
{
        if ($server_url === false)
        {
                $server_url = generate_board_url();
        }
...
                // relative urls for this board
                $magic_url_match[] = '#(^|[\n\t (>.])(' . preg_quote($server_url, '#') . ')/(' . get_preg_expression('relative_url_inline') . ')#ie';
                $magic_url_replace[] = "make_clickable_callback(MAGIC_URL_LOCAL, '\$1', '\$2', '\$3', '$local_class')";
Secondo me (ma al momento non credo di aver occasione di provare) si risolve cambiando quanto sopra in:

Codice: Seleziona tutto

function make_clickable($text, $server_url = false, $class = 'postlink')
{
        if ($server_url === false)
        {
                $server_url = "http://www.slacky.eu/forum"; // forza il parse di http anche se siamo in https
        }
...
                // relative urls for this board
                $magic_url_match[] = '#(^|[\n\t (>.])(' . preg_quote($server_url, '#') . ')/(' . get_preg_expression('relative_url_inline') . ')#ie';
                $magic_url_replace[] = "make_clickable_callback(MAGIC_URL_LOCAL, '\$1', '\$3', '\$3', '$local_class')"; //modificato 2 in 3
Certo, non è bello mettere mano al codice, ma al momento vedo questo.

Comunque io non disattiverei le firme, a meno che non compaiano popup.
Al limite disabiliterei le immagini nelle firme (e non sarebbe male come idea; in questo forum ci si contiene; in altri forum vedi firme con immagini di anche 20-30 centimetri di altezza se non più)

Re: Immagini esterne e https

Inviato: mar 3 apr 2012, 16:53
da conraid
ZeroUno ha scritto: Al limite disabiliterei le immagini nelle firme (e non sarebbe male come idea; in questo forum ci si contiene; in altri forum vedi firme con immagini di anche 20-30 centimetri di altezza se non più)
è esattamente quel che vogliamo fare, le firme non saranno disattivate, ma solo "cancellate". Questo perché non abbiamo trovato il modo per cancellare le vecchie immagini. Già adesso non è possibile inserirle, ma le vecchie rimangono. Se trovi una soluzione, come dice Loris, ben venga...

ora provo quel codice, ma... non volevo ne forzare http ne forzare https, ma lasciare un link relativo, in modo che sia automatico https o http

Re: Immagini esterne e https

Inviato: mar 3 apr 2012, 17:43
da ZeroUno
conraid ha scritto:Questo perché non abbiamo trovato il modo per cancellare le vecchie immagini. Se trovi una soluzione, come dice Loris, ben venga...
Una a una a manina nel database :-D
ora provo quel codice, ma... non volevo ne forzare http ne forzare https, ma lasciare un link relativo, in modo che sia automatico https o http
Quel pezzo di codice forza indirizzi relativi. L'inibizione di https (o meglio, trasformazione automatica in http) l'avete già fatta, quindi in fase di parsing è possibile trovare solamente

Codice: Seleziona tutto

http://www.slacky.eu/forum
. Questo è quello che forzi a cercare in

Codice: Seleziona tutto

$server_url = "http://www.slacky.eu/forum";
. Invece con

Codice: Seleziona tutto

$server_url = generate_board_url();
il parser (in fase di stampa della pagina, non in fase di insert) andrebbe a trasformare in relativi quelli che cominciano per http o https a seconda di come stai navigando.

Re: Immagini esterne e https

Inviato: mar 3 apr 2012, 17:52
da conraid
Quel pezzo di codice trasforma solo quel che viene visualizzato, non il link in relativo, in pratica
<a href="url_assoluto">url_relativo</a>
stavo cercando di modificare, ma non mi prende le modifiche (ma non trovo nemmeno cache da rigenerare)

per esempio ora $server_url è "pippo", ma qui tutto come prima

Re: Immagini esterne e https

Inviato: mer 4 apr 2012, 9:38
da ZeroUno
Guarda, sinceramente io non l'ho provato ma mi sono fidato solo dell'output di qualche grep a destra e manca. Magari faccio qualche prova e ti faccio sapere.

edit: hai ragione... ho fatto un test. Al momento quella funzione mi viene lanciata solo se premo sul pulsante "Anteprima" nella scrittura del post, e come si comporti non lo so. Ma mi sembra strano.
Faccio altre prove e ti faccio sapere.

Re: Immagini esterne e https

Inviato: mer 4 apr 2012, 9:54
da conraid
comunque sembra che prima esegue quel filtro e poi la censura, quindi andrebbe anche cambiato l'ordine. Boh, non so quanto utile.
Volevo forzare https ai soli che usano https, tramite mod_rewrite, ma non ci sono riuscito. Quale RewriteCond devo mettere?
HTTPS=on me la prende sempre, mentre funziona a rovescio con HTTPS!=on

comunque stiamo andando OT, meglio tornare all'origine, cioè al primo messaggio di Loris, magari di questo parliamo in altro topic.
Anzi, ora divido

Re: Immagini esterne e https

Inviato: mer 4 apr 2012, 9:57
da ZeroUno
ok.
fammi sapere quando/dove dividi perchè nei test ho scoperto altre cose brutte :-(

PHPBB e https

Inviato: mer 4 apr 2012, 10:00
da conraid
Discussione nata per riprendere un OT in altra discussione.

Re: PHPBB e https

Inviato: mer 4 apr 2012, 10:58
da ZeroUno
Allora, una toppa l'ho fatta, ma è una toppa che non so quanto può andare.
1) impatta esclusivamente i post e solo se visualizzati con viewtopic.php (quindi no messaggi privati, perchè il problema è esteso anchelì, no nelle firme, no nella scrittura e anteprima ecc).
2) impatta anche ciò che metto nei bbcode [ code ]...[ /code ]
Al momento serve solo per rendere l'idea; poi va sviluppata; ma almeno per questa mattina non credo di avere ulteriore tempo a disposizione per lavorarci.

Comunque la modifica attuale è:
in viewtopic.php sostituire:

Codice: Seleziona tutto

                'MESSAGE'                       => $message,
con

Codice: Seleziona tutto

                'MESSAGE'                     => str_ireplace('http://www.slacky.eu/forum/','',$message),
o, per limitare all'url in < a href="http:... > e non a quanto visualizzato (se per esempio uso [ url ]http:....[ /url ]

Codice: Seleziona tutto

                'MESSAGE'                     => str_ireplace('href="http://www.slacky.eu/forum/','href="',$message),
o, più sicuro e riguardante anche https

Codice: Seleziona tutto

                'MESSAGE'                     => preg_replace('/(<a[^>]*href=")https?:\/\/www\.slacky\.eu\/forum\//([^>]*>)/i','$1$2',$message),
Questa è solo una idea.
Andrebbe sostituita piuttosto mettendo qualcosa di simile nel post-parser (quella inviata precedentemente era nel pre-parser e modificava quanto inserito nel db). Il problema è che gli url con < a href=... > sono già salvati così dentro il database se non messi nel bbcode e parzialmente parsati successivamente.

Per quanto riguarda il modrewrite condizionato dovrebbe essere possibile.
Se non erro in httpd.conf dovrebbe essere fattibile l'impostazione di una variabile di ambiente a seconda di alcune combinazioni, tra cui anche quella, credo, di 'porta utilizzata' e poi il modrewrite condizionato a tale variabile.
Oppure mettere il modrewrite dentro la sezione virtualhost dedicato all'ssl
<virtualhost *:443>
...
rewriteengine ....
...
</virtualhost>
(suppongo sia questa la configurazione utilizzata)


Ma come dicevo credo che almeno stamani non avrò altro tempo per lavorarci.

Re: PHPBB e https

Inviato: mer 4 apr 2012, 12:11
da conraid
Guarda se così secondo te va bene.
preg_replace mi dava molti errori, anche mettendo cose banali, quindi ho usato str_replace con un array

Codice: Seleziona tutto

$url_slacky = array('http://www.slacky.eu/forum/','https://www.slacky.eu/forum/');
[ ... ]
'MESSAGE'                     => str_ireplace($url_slacky, "", $message),
va in "post", non in pre, nel db inserisce l'url, come vedi infatti mi censura i due link anche in

Codice: Seleziona tutto

 :D

usa CITA per vedere il codice :-)

comunque è
$url_slacky = array('h_t_t_p://www.slacky.eu/forum/','h_t_t_p_s://www.slacky.eu/forum/');
senza _

Re: PHPBB e https

Inviato: mer 4 apr 2012, 13:55
da ZeroUno
Che problemi ti dava il preg_replace? Quello risolveva il problema del [ code ].

oppure

Codice: Seleziona tutto

'MESSAGE' => str_ireplace('<!-- l --><a class="postlink-local" href="h_ttp://www.slacky.eu/forum/', '<!-- l --><a class="postlink-local" href="', $message),
questo risolve solo i link scritti con
h_ttp://www.slacky.eu/forum/viewtopic.... e non quelli con il bbcode.

non è necessario specificare anche https perchè c'è il filtro che lo corregge automaticamente prima di inserirlo nel db se non erro.

Ma la soluzione con preg era la migliore.

Re: PHPBB e https

Inviato: mer 4 apr 2012, 14:08
da conraid
no, il filtro funziona in "visualizzazione", non in inserimento nel db, e volevamo anche toglierlo prima o poi

per il bbcode: ma viene usato per i link interni? boh...
comunque dava errori phpbb_debug, dopo riprovo con calma

Re: PHPBB e https

Inviato: mer 4 apr 2012, 14:11
da conraid