Enviar localstorage mediante webhook desde la consola, error 404 ¿?

Iniciado por Xyzed, 11 Junio 2021, 10:37 AM

0 Miembros y 1 Visitante están viendo este tema.

Xyzed

Hola.

Estuve informandome acerca del funcionamiento de LocalStorage, siempre me maneje más por el lado de las cookies y estoy obteniendo un error al intentar enviar mediante una webhook desde la consola un valor del mencionado almacenador de información;

Código (javascript) [Seleccionar]

function getLocalStoragePropertyDescriptor() {
  const iframe = document.createElement('iframe');
  document.head.append(iframe);
  const pd = Object.getOwnPropertyDescriptor(iframe.contentWindow, 'localStorage');
  iframe.remove();
  return pd;
}

Object.defineProperty(window, 'localStorage', getLocalStoragePropertyDescriptor());
const localStorage = getLocalStoragePropertyDescriptor().get.call(window);



La aplicación al iniciarse limpia y no permite de alguna forma acceder a LocalStorage, por lo tanto utilice esa función que encontré navegando para poder acceder al LocalStorage.

Para corroborar que la función mencionada este en correcto funcionamiento hice una simple impresión desde la consola con:

Código (javascript) [Seleccionar]

console.log(LocalStorage);


Esto devuelve lo buscado sin ningún problema, por lo tanto la función getLocalStoragePropertyDescriptor está bien.

Luego de eso, intente desde la misma consola poder enviar un webhook, esto funciona correctamente, pero al pasar el contenido de "LocalStorage" a una variable para ser enviado, recibo el error 404.
Este es el código;

Código (javascript) [Seleccionar]

function enviarhook() {
      var request = new XMLHttpRequest();
      request.open("POST", "direcciondelhook");

      request.setRequestHeader('Content-type', 'application/json');

      var msg = LocalStorage; //Linea que causa el error, msg es el contenido que sera enviado mediante POST al webhook. Si en vez de "LocalStorage" le atribuyo cualquier otro contenido, se envia correctamente, pero en cambio si esta tal cual lo presente aqui, recibo un error 400 "POST".

      var params = {
        content: msg
      }

      request.send(JSON.stringify(params));
    }


Quizás esto está prohibido por un tema de seguridad, pero puede ser que este empleando algo mal por lo tanto realizo el post aquí.

La pregunta es; ¿Cuál es el causante del error?

Saludos.
...

Xyzed

Actualizo: Ya lo pude resolver, simplemente pasando el parametro exacto a buscar en LocalStorage funciona sin problemas:


Código (javascript) [Seleccionar]

//cambiar:
var msg = LocalStorage;
//por:
var msg = LocalStorage.getItem('valor');
//Al parecer al justificar exactamente que quieres enviar lo hace sin problemas.


Saludos.
...