{"action":"closed","issue":{"url":"https://api.github.com/repos/mxabierto/participa/issues/249","labels_url":"https://api.github.com/repos/mxabierto/participa/issues/249/labels{/name}","comments_url":"https://api.github.com/repos/mxabierto/participa/issues/249/comments","events_url":"https://api.github.com/repos/mxabierto/participa/issues/249/events","html_url":"https://github.com/mxabierto/participa/issues/249","id":116671229,"number":249,"title":"[Code] - (4) Never use JavaScript 'history' object or navigation-based positioning functions.","user":{"login":"rodowi","id":705860,"avatar_url":"https://avatars.githubusercontent.com/u/705860?v=3","gravatar_id":"","url":"https://api.github.com/users/rodowi","html_url":"https://github.com/rodowi","followers_url":"https://api.github.com/users/rodowi/followers","following_url":"https://api.github.com/users/rodowi/following{/other_user}","gists_url":"https://api.github.com/users/rodowi/gists{/gist_id}","starred_url":"https://api.github.com/users/rodowi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rodowi/subscriptions","organizations_url":"https://api.github.com/users/rodowi/orgs","repos_url":"https://api.github.com/users/rodowi/repos","events_url":"https://api.github.com/users/rodowi/events{/privacy}","received_events_url":"https://api.github.com/users/rodowi/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/mxabierto/participa/labels/bug","name":"bug","color":"fc2929"},{"url":"https://api.github.com/repos/mxabierto/participa/labels/gobmx","name":"gobmx","color":"0052cc"},{"url":"https://api.github.com/repos/mxabierto/participa/labels/ready","name":"ready","color":"ededed"}],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2015-11-13T00:09:22Z","updated_at":"2015-11-19T22:54:27Z","closed_at":"2015-11-19T22:54:27Z","body":"Existe la vulnerabilidad de posicionamiento basados en navegación. Esta norma identifica cualquier uso del objeto ' history ' o funciones de posicionamiento.\n\tSe considera mala práctica por las siguientes razones:\n\no\tPOST: Si una página visitada se generó con POST, el navegador emitirá una advertencia si los datos presentados no están codificados en la URL. \no\tPRIVACIDAD: Ninguna aplicación debe saber qué páginas visitó un usuario (Los navegadores emitirán una alerta de seguridad y bloquearán el acceso) \no\tLÓGICA DE NAVEGACIÓN POBRES: La secuencia de página exacta tomada por usuarios puede no coincidir con las   expectativas del programador. \n    \t\nComo ejemplo, lo siguiente se considera violación:\nwindow.back ();                         // VIOLATION\nself.history.go (-1);                   // VIOLATION\n\nY las mejores prácticas de este ejemplo indican que la forma correcta sería:\nwindow.location.replace (targetUrl);    // OK, not using navigate\nDonde targetUrl es una URL exacta.\n\nEs mucho mejor para colocar al usuario en la URL exacta (usando ‘location’ validando siempre la información que se recibe con esta funcion), esto permite al usuario jugar con los botones de navegación del explorador si lo necesita. Se requiere saber sobre que se está haciendo posterior a ésta condición y si es necesaria tenerla ya que la norma identifica como vulnerabilidad cualquier uso del objeto ' history’.\n\nArchivo public/build/dist/js/libs-232da6ed.js\nLínea 25000  \n              history = window.history,\n\nArchivo public/build/dist/js/libs-232da6ed.js\nLínea 25122  \n            if (history !== window.history) history = window.history;\n\nArchivo public/build/dist/js/libs-232da6ed.js\nLínea 25134  \n                if (replace) history.replaceState(null, '', url);\n\nArchivo public/build/dist/js/libs-232da6ed.js\nLínea 25136  \n                  history.pushState(null, '', url);"}}