Visualizzazione risultati 1 fino 9 di 9

Discussione: Aprire i link esterni al dominio in un'altra finestra usando GET e header

  1. #1
    Guest

    Predefinito Aprire i link esterni al dominio in un'altra finestra usando GET e header

    Non sapevo che scrivere nel titolo

    Allora, in poche parole devo creare una pagina:

    link.php?out=LINK

    Mi faccia un redirect a LINK.

    Praticamente nei post dovrò sostituire
    Codice:
    <a href="LINK">Testo</a>
    con
    Codice:
    <a href="link.php?out=LINK">Testo</a>
    Ho fatto questo script:
    Codice PHP:
    if(!empty($_GET['link']))
    {
    $link = $_GET['link'];
    header('Location: ' . $link );
    }
    else
    {
    header('Location: http://' . $board_config['server_name'] . $board_config['script_path']);
    }
    Però non mi pare per niente sicuro. Potreste, che ne so, rendere più sicuro lo script in qualche modo?

    Grazie in anticipo

  2. #2
    Guest

    Predefinito

    perchè non lo ritieni sicuro?

    Ciauz!
    Mattia

  3. #3
    Guest

    Predefinito

    Mi pare troppo semplice per essere sicuro.

    Magari cambiando valore a GET riescono fare qualche injection, non lo so, chiedo a voi per quello

  4. #4
    L'avatar di Xsescott
    Xsescott non è connesso AlterGuru
    Data registrazione
    08-02-2004
    Messaggi
    1,413

    Predefinito

    non credo avrai problemi con un redirect, al massimo puoi controllare che l'input sia realmente un indirizzo.
    magari se ci fosse stato un echo o un include avresti potuto avere problemi non controllando adeguatamente l'input.
    "Quando il potere dell'amore supererà l'amore per il potere il mondo conoscerà la pace" Jimmy Hendrix


    [ Richiesta: http://www.unibologna.eu/ ] --> [Risposta: http://www.magazine.unibo.it/Magazin...al_Portale.htm Morale] -->[ http://www.anti-phishing.it/news/art...s.13062007.php ]
    consoliwebsite.altervista.org

  5. #5
    Guest

    Predefinito

    Non ho ne input ne niente. Utilizzando il bbcode:
    Codice HTML:
    [url=LINK]Testo[/url]
    Io trasformo il link in questo modo:
    Codice PHP:
    $html = '<a' . ($this->allow_styling && isset($item['params']['class']) ? '' : ' class="post-url"') . ' href="' . ( $url_local ? '' : 'out.php?link=') . htmlspecialchars($url) . '"' . ($url_local ? '' : ' target="_blank"') . $this->add_extras($item['params'], $extras) . '>';
    Quindi se è interno, il link sarà:
    Codice HTML:
    [url=LINK]Testo[/url]
    Altrimenti:
    Codice HTML:
    [url=out.php?link=LINK]Testo[/url]
    Al massimo ci vorrebbe un controllo se viene inserito nella barra degli indirizzi, ma se mi dite che facendo un redirect non succede mi fido e lascio così

  6. #6
    Guest

    Predefinito

    Io metterei un trim nel get e anche una @ davanti!
    Ciauu! ^^

  7. #7
    Guest

    Predefinito

    Citazione Originalmente inviato da sIM Visualizza messaggio
    Io metterei un trim nel get e anche una @ davanti!
    Ciauu! ^^
    Per trim() ci ho pensato, avevo in mente anche una htmlspecialchars() ma non credo sia utile vero?

  8. #8
    L'avatar di matt93
    matt93 non è connesso Utente
    Data registrazione
    01-09-2008
    Messaggi
    241

    Predefinito

    la htmlspecialchars() sarebbe utile a livello w3c, in quanto:

    <a href="pag.php?s=1&b=3">Link</a>

    a volte da entità HTML sconosciuta su &b=

    mentre
    <a href="pag.php?s=1&amp;b=3">Link</a>

    non dovrebbe dare grandi problemi

  9. #9
    Guest

    Predefinito

    Sulla trasformazione del testo non ho problemi, ma vorrei solo essere sicuro che se uno passa un valore a ?link= non crei problemi di sicurezza

    Ho risolto, secondo me, utilizzando le funzioni base64_encode() e base64_decode()
    Ultima modifica di biccheddu : 22-02-2009 alle ore 16.33.20 Motivo: Soluzione.

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •