Domanda

Ho usato HTML depuratore per eliminare qualsiasi materiale sospetto proveniente dalla mia fronte editor di pubblico WYSIWYG. Il codice HTML in arrivo viene visualizzato anche nella parte pubblica del sito web.

ho permesso link, e ho anche Linkify automaticamente gli URL in formato testo (utilizzando il depuratore).

C'è un modo per permettere link esterni, ma i collegamenti divieto stesso dominio? Per esempio il mio dominio è www.example.com

http://www.google.com saranno collegati.

http://www.example.com/logout/ non saranno collegati.

Sto cercando di ridurre al minimo le interferenze da utenti malintenzionati. Devo solo fare il mio link di logout un'azione modulo con una coppia chiave POST / valore per fermare questo accada?

Grazie

È stato utile?

Soluzione

Il tuo login / out modulo dovrebbe essere sempre POST-only.

Non ti preoccupare per un valore di verifica, ma questo è un problema di sicurezza piuttosto importante - operazioni che cambiano lo stato del server web dovrebbe essere richieste POST. Non si dovrebbe mai permettere http://example.com/object?action=delete , o qualsiasi sua variante. PHP incoraggia cattiva pratica in questa materia, ma si dovrebbe sempre utilizzare uno o l'altro, e MAI consentire sia.

Se gli utenti possono scrivere le forme nel tuo editor WYSIWYG, hai problemi di gran lunga più grande di questo.

Per rispondere alla tua domanda iniziale, per disabilitare i collegamenti interni, l'uso URI.HostBlacklist e assicurarsi di impostare URI.MakeAbsolute:

http://htmlpurifier.org/live/configdoc/plain.html # URI.HostBlacklist

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