Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php mysqli中的安全性_Php_Sql_Mysqli - Fatal编程技术网

Php mysqli中的安全性

Php mysqli中的安全性,php,sql,mysqli,Php,Sql,Mysqli,因此,我尝试开始使用mysqli来提高安全性,这就是我目前所拥有的: conectar.php文件 <?php $DBServer = 'X'; // ip o lo que sea $DBUser = 'X'; $DBPass = 'X'; $DBName = 'X'; $conn = new mysqli($DBServer, $DBUser, $DBPass, $DBName); if ($conn->connect_error) { trigger_err

因此,我尝试开始使用mysqli来提高安全性,这就是我目前所拥有的: conectar.php文件

<?php
$DBServer = 'X'; // ip o lo que sea
$DBUser   = 'X';
$DBPass   = 'X';
$DBName   = 'X';
 $conn = new mysqli($DBServer, $DBUser, $DBPass, $DBName);

 if ($conn->connect_error) {
 trigger_error('Database connection failed: '  . $conn->connect_error, E_USER_ERROR);
  }
   ?>
我应该如何防止黑客攻击或SQL注入??我是否应该设置一个数组,以便只接受$categoria的某些值?
谢谢

切勿将此类GET变量用作SQL查询中使用的变量,因为有人可能会将GET变量的值更改为“DROP TABLE…”。 要提高代码的安全性,请执行以下操作:

  • 想想准备好的陈述
  • 使用或

请参考此问题的答案:为什么我投了反对票?我正在考虑使用一个数组,这样,如果get变量不是预期的,它就不会做任何事情。。。这将阻止任何类型的sql注入,对吗?还有,我确实读过这篇文章:但我真的不理解事先准备好的陈述。。。。顺便说一句:我真的不知道你为什么投了反对票,这似乎是一个完美的答案me@DanielAnt奥恩加西亚啊,好的!当你需要的时候,我可以教你准备好的陈述是什么;)另外,我在评论出现之前写下了这个答案,或者我没有注意到。你能帮我吗?谢谢!
include("admin/conectar.php");
$categoria = $_GET['categoria'];
if($categoria){
 $query_p = $conn->query("SELECT * FROM `productos` WHERE `categoria` = '$categoria'     ORDER BY nombre ASC");
while($result_p = $query_p->fetch_object()){
$nombre = $result_p->nombre;
$referencia = $result_p->referencia;;
$descripcion = $result_p->descripcion; 
$imagen = $result_p->imagen;