javascript - localstorage - script5 acceso denegado
Acceso denegado para localstorage en IE10 (7)
Agregué los sitios web involucrados a la sección Sitios de confianza de IE y no he recibido el error nuevamente.
Ayer instalé Windows 8 y ahora trato de entender por qué aparece un mensaje de "Acceso denegado" al acceder a localstorage. La página se sirve en la misma PC con el navegador (http: // localhost). Mi sensación es que una de las configuraciones de seguridad en IE 10 es incorrecta, pero no he descubierto cuál.
La línea de código JavaScript que desencadena el error es:
if(window.localStorage.getItem(''phone'') == null)
El código funciona bien en la última versión de Chrome.
Este problema también puede ser causado por tener entradas de registro faltantes o dañadas. Si un restablecimiento no resuelve el problema, la carpeta LocalLow
tiene el nivel de integridad correcto y el valor del registro DOMStore
es correcto , ejecute los comandos a continuación para volver a registrar IE en el perfil:
OS de 32 bits:
C:/WINDOWS/system32/ie4uinit.exe -BaseSettings
SO de 64 bits:
C:/WINDOWS/system32/ie4uinit.exe -BaseSettings
C:/Windows/SysWOW64/ie4uinit.exe -BaseSettings
Intente habilitar el Modo protegido mejorado en la configuración de IE, en la pestaña Avanzado, en la sub-lista de Seguridad. Esto habilita el filtro de Microsoft XSS. Tuve problemas similares al iniciar sesión en SE y al buscar las notificaciones de google +, y mi primera solución fue iniciar IE con privilegios de administrador. Pero creo que el modo EP hará el truco en tu caso también.
Enlaces relacionados: Entender el modo protegido mejorado
Mark Russinovich siempre dice: "en caso de duda, use Process Monitor ":
Los datos de localStorage se almacenan en archivos XML en la siguiente carpeta: C: / Users / [USERNAME] / AppData / Local / Microsoft / Internet Explorer / DOMStore
Un perfil de la actividad del archivo mientras se reproduce el problema puede indicarle si el problema se debe a la falta de permisos de acceso a los archivos o incluso a un programa antivirus.
Puedo reproducir el error agregando el atributo de solo lectura a "DOMStore / container.dat". Debe verificar si todos los permisos y atributos de archivos / carpetas están configurados correctamente. En mi máquina, los administradores y mi propia cuenta tienen permiso completo para la carpeta mencionada.
Nuestros usuarios tenían problemas con los sitios web que usaban la función LocalStorage (incluido Twitter) en Windows 8 con IE 10. Al acceder a uno de estos sitios con las Herramientas de desarrollo F12 abiertas, SCRIPT5: Access is denied
un SCRIPT5: Access is denied
en la consola.
Después de trabajar con el soporte de Microsoft, identificamos la causa. Resultó ser un problema con la configuración en la carpeta C:/Users/username/Appdata/LocalLow
en su perfil de usuario.
Cada carpeta en su computadora tiene una configuración de integridad. Más información sobre el propósito de esta configuración aquí: http://msdn.microsoft.com/en-us/library/bb625964.aspx
Se supone que la configuración de integridad en la carpeta AppData/LocalLow
(y sus subcarpetas) en el perfil de cada usuario se establece en "Baja" (de ahí el nombre). En nuestro caso, el nivel de integridad no se configuró correctamente en esta carpeta. Para corregir el problema, ejecute el siguiente comando en una ventana del símbolo del sistema:
icacls %userprofile%/Appdata/LocalLow /t /setintegritylevel (OI)(CI)L
(Si hay más de una cuenta de usuario en la computadora y los otros usuarios tienen el mismo problema, el comando debe ejecutarse en la cuenta de cada usuario afectado).
¿En cuanto a cómo se cambió esta configuración en primer lugar? En nuestro caso, fue causado por un problema en la imagen de Windows 8 personalizada que implementamos en nuestras estaciones de trabajo. Para otros que tienen el problema, mi investigación ha revelado que el uso de una utilidad de "limpiador de sistemas" puede ser el culpable.
Sin duda, puede haber muchas causas de los mismos síntomas, pero esto es lo que solucionó este problema para mí.
Tuve una de las muchas PC con Windows 7 con IE11 que mostraba el síntoma de "Acceso denegado" al intentar cualquier JavaScript que involucrara a window.localStorage
de sitios web de buena reputación y de buen comportamiento. El uso de Process Explorer reveló que la causa próxima era un ACCESO DENEGADO cuando taskhost.exe (actuando en nombre de Internet Explorer) intentó abrir DOMStore/container.dat
para Lectura-Escritura Genérica. De hecho, era peor que eso: si eliminaba container.dat
, se producía el mismo ACCESO NEGADO, incluso a través del archivo, ya no existía. Y, si DOMStore
carpeta DOMStore
(oculta), cuando taskhost.exe intentó recrearla, también recibió ACCESO DENEGADO.
Después de dos días de perseguir pistas falsas, la solución final fue esta:
La entrada de registro:
HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Internet Settings/5.0/LowCache/Extensible Cache/DOMStore/CachePath
(note que el LowCache
en esa cadena) fue configurado incorrectamente a:
%USERPROFILE%/AppData/Local/Microsoft/Internet Explorer/DOMStore
cuando debería ser:
%USERPROFILE%/AppData/LocalLow/Microsoft/Internet Explorer/DOMStore
con la consecuencia de que las solicitudes de almacenamiento local de baja integridad estaban siendo dirigidas a regiones de integridad media del almacenamiento en disco de AppData, generando errores de ACCESO DENEGADOS y matando el uso de la window.localStorage
de JavaScript.localStorage.
Esta entrada de registro debe haber estado equivocada durante muchos años: tal vez un efecto secundario de la aceptación entusiasta de las vistas previas de la plataforma con errores y así sucesivamente. Este error sobrevivió a la eliminación total y la reinstalación de IE11.
Hay una entrada de registro de aspecto similar para el caché de integridad media:
HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Internet Settings/5.0/Cache/Extensible Cache/DOMStore/CachePath
y eso se deja correctamente como:
%USERPROFILE%/AppData/Local/Microsoft/Internet Explorer/DOMStore
y no debe ser cambiado.
Vaya a Herramientas / Opciones de Internet / Avanzadas y en "Seguridad" seleccione la casilla de verificación "Habilitar almacenamiento DOM". Esto debería solucionar el problema