Nous avons une forte demande de sécurité et nous voulons permettre aux utilisateurs d'entrer des Url qui permettra aux autres utilisateurs de voir.
Cela introduit un risque élevé de XSS hacks - un utilisateur peut potentiellement entrer en javascript qu'un autre utilisateur se termine en cours d'exécution. Puisque nous avons des données sensibles, il est essentiel que cela n'arrive jamais.
Quelles sont les meilleures pratiques dans la gestion de cette? Est tout la sécurité de liste blanche ou d'échapper au seul motif suffisant?
Des conseils sur la façon de traiter avec les redirections ("ce lien est en dehors de notre site" et un message sur une page d'avertissement avant de suivre le lien, par exemple)
Est-il un argument pour ne pas supporter l'utilisateur a entré des liens à tous?
Précisions:
Au fond, nos utilisateurs veulent d'entrée:
stackoverflow.com
Et l'ont sortie à un autre utilisateur:
<a href="http://stackoverflow.com">stackoverflow.com</a>
Ce que je vraiment vous inquiéter, c'est en utilisant cette dans un XSS hack. I. e. ils en entrée:
alert('piraté!');
Afin que les autres utilisateurs à obtenir ce lien:
<a href="alert('hacked!');">stackoverflow.com</a>
Mon exemple est juste pour expliquer le risque, j'en suis bien conscient que javascript et les Url sont des choses différentes, mais en les laissant entrer le deuxième cas, ils peuvent être en mesure d'exécuter l'ancien.
Vous seriez étonné de voir comment de nombreux sites que vous pouvez rompre avec ce truc - HTML est encore pire. Si ils savent traiter avec des liens à faire, mais ils savent aussi à assainir <iframe>
, <img>
, intelligent et CSS références?
Je suis en train de travailler dans un environnement de haute sécurité - un seul XSS hack pourrait entraîner de très fortes pertes pour nous. Je suis heureux que j'ai pu produire une Regex (ou utiliser l'une des excellentes suggestions à ce jour) qui pourrait exclure tout ce que je pouvais penser, mais est-ce assez?