aboutsummaryrefslogtreecommitdiff
path: root/files/ca/mozilla/persona/considerasions_de_seguretat/index.html
diff options
context:
space:
mode:
Diffstat (limited to 'files/ca/mozilla/persona/considerasions_de_seguretat/index.html')
-rw-r--r--files/ca/mozilla/persona/considerasions_de_seguretat/index.html58
1 files changed, 58 insertions, 0 deletions
diff --git a/files/ca/mozilla/persona/considerasions_de_seguretat/index.html b/files/ca/mozilla/persona/considerasions_de_seguretat/index.html
new file mode 100644
index 0000000000..455645d8ef
--- /dev/null
+++ b/files/ca/mozilla/persona/considerasions_de_seguretat/index.html
@@ -0,0 +1,58 @@
+---
+title: Consideracions de Seguretat
+slug: Mozilla/Persona/Considerasions_de_Seguretat
+tags:
+ - Persona
+translation_of: Archive/Mozilla/Persona/Security_Considerations
+---
+<p><span id="result_box" lang="ca"><span class="hps">Quan</span> <span class="hps">afegeixes</span> <span class="hps">suport per</span> <span class="hps">Persona</span> <span class="hps">al vostre lloc web</span><span>,</span> <span class="hps">ella pren</span> <span class="hps">tantes</span> <span class="hps">mesures de</span> <span class="hps">seguretat</span> <span class="hps">com pot.</span> <span class="hps">No obstant això</span><span>,</span> <span class="hps">algunes</span> <span class="hps">mesures de</span> <span class="hps">seguretat</span> <span class="hps">només</span> <span class="hps">poden</span> <span class="hps">ser manejades</span> <span class="hps">pel teu lloc</span> <span class="hps">web</span><span>.</span> <span class="hps">Aquestes</span> <span class="hps">són</span> <span class="hps">llistades</span> <span class="hps">a continuació</span><span>.</span></span></p>
+<h2 id="Essential_practices" name="Essential_practices">Pràctiques essencials</h2>
+<h3 id="Verify_assertions_on_your_server" name="Verify_assertions_on_your_server">Verifica les assercions en el servidor</h3>
+<p>En utilitzar Persona, es passen les assercions d'identitat a la funció onlogin passat a {{ domxref("navigator.id.watch()") }}. Vostè sempre ha de passar a l'asserció del seu servidor per a la verificació, i només el servidor ha de resoldre la concessió dels permisos d'usuari addicionals basats en el resultat de la verificació:</p>
+<pre class="brush:js;">// Inside navigator.id.watch({ ...
+onlogin: function(assertion) {
+ // A user wants to log in! Here you need to:
+ // 1. Send the assertion to your backend for verification and to create a session.
+ // 2. Update your UI.
+},
+</pre>
+<p>Si tracta de verificar l'asserció utilitzant JavaScript executant-se al navegador de l'usuari, algun usuari maliciós podria suplantar la identitat d'un altre usuari legítim injectant codi i subvertint el teu codi JavaScript. Això és possible a causa que no es té control del navegador de l'usuari, on s'executa el codi.</p>
+<p>Com esmentem línies a dalt, sempre ha de passar l'asserció al seu servidor per a la verificació. Fins i tot si esteu utilitzant l'API de verificació remota.</p>
+<h3 id="Explicitly_specify_the_audience_parameter" name="Explicitly_specify_the_audience_parameter"><span class="short_text" id="result_box" lang="ca"><span class="hps">Especifiqueu</span> <span class="hps">explícitament</span> <span class="hps">el paràmetre</span> <span class="hps">audiència</span></span></h3>
+<p>Per verificar l'asserció, ha de realitzar una petició POST a <code>https://verifier.login.persona.org/verify</code>. La petició inclou el paràmetre anomenat audience:</p>
+<pre><code>assertion=&lt;ASSERTION&gt;&amp;audience=https://mysite.com:443"</code></pre>
+<p>El paràmetre audience és requerit. Sempre ha d'especificar explícitament audience en el seu codi, o a la configuració del seu codi. Específicament:</p>
+<ul>
+ <li>No confiï en la capçalera o header Host enviat pel navegador de l'usuari.</li>
+ <li>No confiï en paràmetres explícits enviats pel navegador de l'usuari, però generats usant JavaScript, p. e. document.location.</li>
+</ul>
+<p>Si deixes que el navegador de l'usuari t'enviï el paràmetre audience, un lloc web maliciós pot reutilitzar les assercions del <em>seu</em> lloc web per autenticar-se al <em>vostre</em> lloc web.</p>
+<h3 id="Verify_SSL_certificates" name="Verify_SSL_certificates">Verifica els certificats SSL</h3>
+<p>Per a verificar una declaració, has de fer un petició POST a <code>https://verifier.login.persona.org/verify</code>. Comprova que la teva petició HTTPS verifiqui el certificat enviat des del servidor contra un certificat arrel fiable. Si no ho fas, un atacant podria presentar-se com <code>verifer.login.persona.org</code> i realitzar verificacions falses.</p>
+<p>Revisa que la llibreria que fas servir per fer la comanda verifiqui els certificats correctament, i que has iniciat això amb un(s) certificat(s) arrel apropiat(s).</p>
+<p>Per exemple, el <a href="http://docs.python.org/release/2.7.3/library/urllib2.html#urllib2.urlopen" title="http://docs.python.org/release/2.7.3/library/urllib2.html#urllib2.urlopen">mòdul</a><a href="http://docs.python.org/release/2.7.3/library/urllib2.html#urllib2.urlopen" title="http://docs.python.org/release/2.7.3/library/urllib2.html#urllib2.urlopen"> urllib2</a> estàndard de Python 2.7 no valida certificats del servidor. En lloc d'això, recomanem utilitzar els mòduls "<a href="http://pypi.python.org/pypi/requests" title="http://pypi.python.org/pypi/requests">requests</a>" o "<a href="http://pypi.python.org/pypi/urllib3" title="http://pypi.python.org/pypi/urllib3">urllib3</a>" en Python 2.x, o la classe estàndard <code>http.client.HTTPSConnection</code> en Python 3.x. Per Perl, assegura't que fas servir almenys la versió 6.0 de <code>libwww-perl</code>. Depenent del llenguatge, llibreria, i sistema operatiu que estiguis usant, necessitaràs utilitzar algun CA (Certificate Authority) fiable o simplement el CA usat per <code>verifier.login.persona.org</code>.</p>
+<h3 id="Implementa_proteccions_CSRF">Implementa proteccions CSRF</h3>
+<p>En un atac d'inici de sessió per CSRF (Cross-Site Request Forgery), l'atacant aconsegueix que l'usuari iniciï sessió dins del lloc web fent servir les credencials de l'atacant.</p>
+<p>Per exemple: un usuari visita una web maliciosa que conté un element form. L'atribut action del form està configurat per fer una petició HTTP POST a <a href="http://www.google.com/login" title="http://www.google.com/login">http://www.google.com/login</a>, donant-li el username i password de l'atacant. Quan l'usuari envia al form, la petició és enviada a Google, s'inicia sessió i el servidor de Google configura una galeta al navegador de l'usuari. Ara l'usuari sense saber-ho ha iniciat sessió amb el compte Google de l'atacant.</p>
+<p>L'atac pot ser usat per reunir informació sensible de l'usuari. Per exemple, <a href="https://www.google.com/history/" title="https://www.google.com/history/">Web</a><a href="https://www.google.com/history/" title="https://www.google.com/history/"> History</a> de Google té la característica de registrar tots els termes de cerca de l'usuari. Si l'usuari inicia sessió dins del compte Google de l'atacant i l'atacant té la característica Web History activada, l'usuari li estarà enviant tota la seva informació a l'atacant.</p>
+<p>Els atacs d'inici de sessió CSRF, i defenses potencials en contra d'aquests són documentats amb més detall a <a href="http://www.adambarth.com/papers/2008/barth-jackson-mitchell-b.pdf" title="http://www.adambarth.com/papers/2008/barth-jackson-mitchell-b.pdf">Robust Defenses for Cross-Site Request Forgery</a> (PDF). Aquests atacs no són específics de Persona: la majoria de mecanismes de connexió són potencialment vulnerables a ells.</p>
+<p>Hi ha una varietat de tècniques, les quals poden ser usades per protegir un lloc d'atacs de CSRF login, les quals són documentades amb més detall en l'estudi abans esmentat.</p>
+<p>Una proposta és crear un identificador secret al servidor, compartit amb el navegador, i requerir al navegador que el proporcioni quan realitzi una comanda d'inici de sessió. Per exemple:</p>
+<ol>
+ <li>Tan aviat com l'usuari visiti el seu lloc, abans que aquest intenti iniciar sessió, creï una sessió per a ell al servidor. Emmagatzemeu l'ID de la sessió en una galeta del navegador.</li>
+ <li>Al servidor, generi un text aleatori d'almenys 10 caràcters alfanumèrics. Un UUID generat aleatòriament és una bona opció. Això és un token CSRF. Emmagatzemi això en la sessió.</li>
+ <li>Enviï el CSRF token el navegador a través de JavaScript incrustat o HTML com una variable oculta del formulari.</li>
+ <li>Assegureu-vos que l'enviament AJAX o la petició POST del formulari inclogui el token CSRF.</li>
+ <li>Al costat del servidor, abans d'acceptar la declaració, comproveu que el token CSRF enviat concorda amb el prèviament desat per la sessió.</li>
+</ol>
+<h2 id="Millores">Millores</h2>
+<h3 id="Content_Security_Policy_(CSP)" name="Content_Security_Policy_(CSP)">Polítiques de seguretat de continguts (CSP)</h3>
+<p><a href="/en-US/docs/Security/CSP" title="Security/CSP">Content Security Policy</a> (CSP) és una capa extra de seguretat que ajuda a detectar i mitigar certs tipus d'atacs, incloent Cross Site Scripting (XSS) i atacs d'injecció de dades. Aquests atacs són usats per a tot, des robatori de dades a desconfiguració del lloc o distribució de malware.<br>
+ <br>
+ Si utilitzes CSP al teu lloc, és possible que necessitis modificar les teves polítiques per permetre Persona. Depenent de la teva política, pots necessitar:</p>
+<ul>
+ <li> Eliminar javascript inline: URIs i reemplaçar amb codi carregat des d'un arxiu script addicional. L'arxiu pot buscar elements basant-se en el seu ID, i després agafar l'element configurant {{ domxref("element.onclick", "onclick") }} o cridant a {{ domxref("element.addEventListener()", "addEventListener()") }}.</li>
+ <li>Permetre <code>https://login.persona.org</code> com a <code>script-src</code> i <code>frame-src </code>perquè l'arxiu pugui carregar el fitxer remot <code>include.js</code> i aquest arxiu pugui comunicar-se amb la implementació de Persona.</li>
+</ul>
+<p>Un exemple de la configuració d'Apache pot incloure:</p>
+<pre><span class="diff-content"><span class="idiff">Header set X-Content-Security-Policy: "default-src 'self'; frame-src 'self' https://login.persona.org ; script-src 'self' https://login.persona.org"</span></span></pre>