Hable sobre cómo MySQL previene la inyección de SQL en PHP

método uno:

mysql_real_escape_string-Escape de caracteres especiales en cadenas utilizadas en sentencias SQL, ¡teniendo en cuenta el conjunto de caracteres actual de la conexión!

$sql = "select count(*) as ctr from users where username
='".mysql_real_escape_string($username)."' and
password='". mysql_real_escape_string($pw)."' limit 1";

Método dos:

Abra magic_quotes_gpc para evitar la inyección de SQL. Hay una configuración en php.ini: magic_quotes_gpc = Off. Está desactivada de forma predeterminada. Si está activada, convertirá automáticamente la consulta enviada por el usuario a sql, como convertir 'a', que tiene un efecto importante en la prevención de la inyección de SQL.

Si magic_quotes_gpc = Off, se usa la función agrega pestañas ().

Método tres:

Función personalizada

/**
* 防止sql注入自定义方法一
* author: xiaochuan
* @param: mixed $value 参数值
*/ 
function check_param($value=null) {
    
    
        #  select|insert|update|delete|\'|\/\*|\*|\.\.\/|\.\/|union|into|load_file|outfile
    $str = 'select|insert|and|or|update|delete|\'|\/\*|\*|\.\.\/|\.\/|union|into|load_file|outfile';
  
    if(!$value) {
    
    
  
        exit('没有参数!');
  
    }elseif(eregi($str, $value)) {
    
    
  
        exit('参数非法!');
  
    }
  
    return true;
}
   
  
  
  
  
  
  
/**
* 防止sql注入自定义方法二
* author: xiaochuan
* @param: mixed $value 参数值
*/
function str_check( $value ) {
    
    
  
    if(!get_magic_quotes_gpc()) {
    
    
  
        // 进行过滤
        $value = addslashes($value);
  
    }
  
    $value = str_replace("_", "\_", $value);
  
    $value = str_replace("%", "\%", $value);
       
   return $value;
}
   
  
  
  
  
  
/**
* 防止sql注入自定义方法三
* author: xiaochuan
* @param: mixed $value 参数值
*/
function post_check($value) {
    
    
  
    if(!get_magic_quotes_gpc()) {
    
    
  
        // 进行过滤 
        $value = addslashes($value);
  
    }
  
    $value = str_replace("_", "\_", $value);
  
    $value = str_replace("%", "\%", $value);
  
    $value = nl2br($value);
  
    $value = htmlspecialchars($value);
  
    return $value;
}

Presta atención, no te pierdas

Muy bien, todos, lo anterior es todo el contenido de este artículo. Las personas que pueden ver aquí son todos talentos . Como dije antes, hay muchos puntos técnicos en PHP, porque hay demasiados, es realmente imposible de escribir, y no leerás demasiado después de escribirlo, así que lo organizaré en PDF y documentos aquí, si es necesario. lata

Haga clic para ingresar el código secreto: PHP + 「Plataforma」

Inserte la descripción de la imagen aquí

Inserte la descripción de la imagen aquí


Para obtener más contenido de aprendizaje, visite el excelente catálogo de tutoriales de arquitecto PHP de [Comparative Standard Factory], siempre que pueda leerlo para asegurarse de que el salario aumentará un paso (actualización continua)

El contenido anterior espera poder ayudarte . Muchos PHPers siempre encuentran algunos problemas y cuellos de botella cuando están avanzados. No hay sentido de dirección cuando escriben demasiado código comercial. No sé por dónde empezar a mejorar. He compilado información sobre esto, incluyendo Pero no se limita a: arquitectura distribuida, alta escalabilidad, alto rendimiento, alta concurrencia, ajuste del rendimiento del servidor, TP6, laravel, YII2, Redis, Swoole, Swoft, Kafka, optimización de Mysql, scripts de shell, Docker, microservicios, Nginx, etc. Muchos puntos de conocimiento, productos secos avanzados avanzados, se pueden compartir con todos de forma gratuita, y aquellos que lo necesiten pueden unirse a mi grupo de intercambio de tecnología PHP

Supongo que te gusta

Origin blog.csdn.net/weixin_49163826/article/details/108984814
Recomendado
Clasificación