Domanda

In alcune parti del mio sito, consentirò agli utenti di inserire un URL. Sto lavorando su AppEngine, quindi quello che stavo pensando, è convalidarlo in questo modo.

try
    response = urlfetch.fetch(url,follow_redirects=True, deadline=1)
    if not response.status_code==200:
       raise SomeCustomException
except: Exception as e:
    my_exception_handling_code(e)

Vantaggi

  • controlla automaticamente il modello URL
  • Si assicura inoltre che l'URL non sia rotto e che il tempo di caricamento non sia più lungo di 1s, contribuendo a garantire una buona esperienza utente quando fai clic su un link sul mio sito.

possibili svantaggi che posso vedere:

  • La richiesta deve attendere il completamento del recupero. Questo probabilmente non sarà un grosso problema, in quanto ci sono pochissime occasioni in cui gli utenti possono inserire URL (attualmente solo su iscrizione).
È stato utile?

Soluzione

Questa è una cattiva idea. Come indicava S. Lott, l'URL potrebbe non essere disponibile ora. Oppure potrebbe essere disponibile solo da una sottorete specifica. Oppure ottiene più di 1 secondo per caricarlo. Basta non farlo. Usa un approccio tradizionale, ad esempio urlparse.

Altri suggerimenti

Se un utente del tuo sito ha capito che si schierano un URL ogni volta che ne pubblica uno, potrebbe essere in grado di sfruttarlo per altri scopi, come votare in un sondaggio o accumulare visualizzazioni di pagina.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top