necesito pasar estos datos x post

Iniciado por tecasoft, 9 Abril 2013, 17:09 PM

0 Miembros y 2 Visitantes están viendo este tema.

WHK

Le diste un vistazo al inspeccionador o a la consola de errores?:

<a onclick=javascript:alert("asdf");>click</a>

Según la W3C (la que dicta el estandard html) dice que las propiedades de una etiqueta se encierran en comillas simples o dobles a menos que sea un string sin espacios en blanco o carácteres especiales que rompan el string como por ejemplo las comillas o null bytes.

El problema es que despues del onclick hay comillas dobles, entonces para el explorador la propiedad queda corrupta:
Citaronclick=javascript:alert("asdf");>

Lo que está de color naranjo sobraría en la propiedad. Es un error de sintaxis.

Prueba con esto:
<a href="javascript:;" onclick="javascript:alert('asdf');">click</a>

Recuerda tambien que una etiqueta <a> por estandard debe llevar siempre la propiedad href o si no no será obligación que el explorador lo considere enlace y de ahi algunos problemas de que en algunos funciona y en otros exploradores no. Fijate que tampoco puse anclas para que no mueva la pantalla al momento de hacer click al enlace si es que estubiera bien abajo.

Intentalo y nos cuentas.

Te recomiendo que para desarrollar utilices el inspeccionador de elementos y te apoyes mucho de la consola de errores ya que ese te va diciendo que está bien y que está mal, dale un vistazo al código fuente desde el explorador y te va a marcar con rojo las etiquetas mal formadas.

Te recomiendo tambien utilizar firefox porque es mas flexible y facil de auditar código y encontrar problemas.

Saludos.

#!drvy

Los navegadores basados en webkit simplemente no hacen caso WHK..

Saludos

tecasoft

WHK no me funciona en el chrome, debe ser algo del web webkit, lo que esta diciento drvy | BSM xk es el unico navegador que hemos probado y no funciona aparte de safari que dicen que tambien, los demas funcionan a la perfeccion, que se podria hacer ya que nose tanto komo vosotros¿? modificando el DOM, utilizando jquery o algo que se os ocurra es que es un problema muy grande y no poder pasar datos y que se ejecuten¿? gracias
http://www.tecasoft.com Un ninja del hacking etico, programacion en html5, css3, javascript, jquery, php, python, c/c++, ensamblador, ingenieria reversa,a auditorias de seguridad, pentesting, exploits

EFEX

Y que tal gardarlo en un txt o en la db y luego imprimirlo, quizás chrome lo filtra por que sabe que son parametro pasados por post o get filtrando el codigo js.
GITHUB 

WHK

aaahhhh acabo de entender xD lo que quieres no es ejecutar el código html sino enviarlo via post :P

Pues chrome y safari entre otros que utilizan webkit te filtran las peticiones get y post para prevenir xss, es un filtro anti xss, de hecho en ie8 y 9 debería funcionar tambien pero si no te corta el código es porque el filtro es malo xD

En firefox debiera funcionar bien porque no impone a nadie a utilizar filtros que nadie quiere.

Para deshabilitar este filtro desde tu sitio web debes agregar esta cabecera:
X-XSS-Protection: 0

Así:
Código (php) [Seleccionar]
<?php header('X-XSS-Protection: 0'); ?>

Recuerda que un header se envía antes de cualquier cosa asi que debes ponerlo en la primera linea de tu código que recibirá el código.

Si lo pones en 1 se habilita, si no lo tienes se habilita, si vas a cenar se habilita, si le dices explicitamente que no lo quieres entonces ahi se deshabilita.

Espero que te sirva, un saludo.

EFEX

WHK, eso es genial! funciona en chrome? y para que agregan un filtro si luego puedo deshabilitarlo?
GITHUB 

#!drvy

Porque lo tienes que implementar en el sitio web :P y la mayoria (como nosotros) desconocemos que se puede desactivar y tampoco nos hace falta desactivarlo.

Saludos

tecasoft

si que funciona con el header whk  ;D , gracias a todos x colaborar, ahora estoy pensando y si kisiera protegerlo contra sql injection una web entera que pasa x post que codigo utilizariais¿? se podria hacer x lista blanca¿? y komo lo hariais¿?
http://www.tecasoft.com Un ninja del hacking etico, programacion en html5, css3, javascript, jquery, php, python, c/c++, ensamblador, ingenieria reversa,a auditorias de seguridad, pentesting, exploits

WHK

#18
debes documentarte un poco mas sobre seguridad en php:
http://php.net/manual/es/security.php

Dale un vistazo a este enlace:
https://foro.elhacker.net/nivel_web/como_evitar_la_inyeccion_sql-t252384.0.html

Para prevenir el xss debes utilizar la función htmlspecialchars() y nunca olvides poner el ENT_QUOTES.

Para prevenir la inyección SQL siempre debes usar mysql_real_escape_string()

Pero cada función tiene su forma de utilizar, no es llegar y ponerlo donde sea, dale una vuelta al tema y lee la documentación de cada una de esas funciones.

El tema de la seguridad web es demasiado amplio, es imposible saber todo, pero si puedes tomar las medidas basicas para prevenir estas cosas.

EFEX, si funciona en chrome pero no siempre te va a proteger, es como el antivirus, proteje cosas basicas pero siempre hay formas de saltar ese filtro, pon en google "chrome anti xss" y verás la cantidad de veces que se ha logrado encontrar una evación, al final google dió un comunicado diciendo que el filtro proteje solo en ciertos escenarios.

Saludos.

tecasoft

#19
no funciona el mysqli_real_escape_string, prueba esto:

prueba2.php

<?php
header
('X-XSS-Protection: 0');

$texto=$_POST["texto"];

include(
"../../conexionbd.php");

$conexion=mysqli_connect($host,$usu,$pusu) or die ("Error mysqli_connect: "mysqli_connect_error());

mysqli_set_charset($conexion,'utf8');

mysqli_select_db($conexion,$bd) or die ("Error mysqli_select_db.");

$texto=mysqli_real_escape_string($conexion$texto);
echo 
$texto;

?>



prueba.php


<html>
<head>

</head>
<body>

<form action="prueba2.php" method="post">
<input type="text" name="texto" size="150"><br>
<input type="submit" value="enviar">
</form>



</body>
</html>


e introduce esto:


<html><head><script language="javascript">alert('asd');</script></head><body><a onclick=javascript:alert('asdf');>click</a></body></html>


si te fijas bien las comillas dobles y simples las hecha como sql injection, como podria hacer para quitar esas barras¿? y en cuanto afectaria a mi aplicacion en seguridad¿?

Edito: tambien afecta a la \
Edito: stripslashes seria una forma de hacerlo pero es seguro¿?
http://www.tecasoft.com Un ninja del hacking etico, programacion en html5, css3, javascript, jquery, php, python, c/c++, ensamblador, ingenieria reversa,a auditorias de seguridad, pentesting, exploits