que tenían esta discusión con una alta reputación chico PHP:¿Cómo prevenir la inyección SQL con nombres dinámicos de tablas?
PDO no tiene ningún uso aquí. así como mysql_real_escape_string. extremadamente mala calidad.
Esto, por supuesto, es fresco, pero, sinceramente, no sé qué le pasa a lo que sugiere el uso de mysql_real_escape_string
o DOP para solucionar este código:
<script type="text/javascript">
var layer;
window.location.href = "example3.php?layer="+ layer;
<?php
//Make a MySQL connection
$query = "SELECT Category, COUNT(BUSNAME)
FROM ".$_GET['layer']." GROUP BY Category";
$result = mysql_query($query) or die(mysql_error());
En este
$layer = mysql_real_escape_string($_GET['layer']);
$query = "SELECT Category, COUNT(BUSNAME)
FROM `".$layer."` GROUP BY Category";
, teniendo en cuenta que el código JavaScript se envía al lado del cliente.
¿Alguien puede por favor publicar el código de ejemplo de cómo solucionar este agujero de inyección de SQL? – Johan
@nikic Veo hacia dónde te diriges, pero no parece infalible :-) – Johan
Sí, tampoco creo que sea infalible. El problema que veo es esta codificación relacionada con cosas, como mencioné en mi respuesta a continuación. Pero no tengo idea de cómo funcionan estos hacks basados en codificación y, por lo tanto, no sé cómo prevenirlos. – NikiC