相关疑难解决方法(0)

如何在PHP中阻止SQL注入?

如果插入用户输入而不修改SQL查询,则应用程序容易受到SQL注入的攻击,如下例所示:

$unsafe_variable = $_POST['user_input']; 

mysql_query("INSERT INTO `table` (`column`) VALUES ('$unsafe_variable')");
Run Code Online (Sandbox Code Playgroud)

这是因为用户可以输入类似的内容value'); DROP TABLE table;--,查询变为:

INSERT INTO `table` (`column`) VALUES('value'); DROP TABLE table;--')
Run Code Online (Sandbox Code Playgroud)

可以采取哪些措施来防止这种情况发生?

php mysql sql security sql-injection

2776
推荐指数
28
解决办法
166万
查看次数

我可以在PHP中混合MySQL API吗?

我搜索过网络,到目前为止我所看到的是你可以使用mysql_mysqli_一起意义:

<?php
$con=mysqli_connect("localhost", "root" ,"" ,"mysql");

if( mysqli_connect_errno( $con ) ) {
    echo "failed to connect";
}else{
    echo "connected";
}
mysql_close($con);
echo "Done";
?>
Run Code Online (Sandbox Code Playgroud)

要么

<?php
$con=mysql_connect("localhost", "root" ,"" ,"mysql");
if( mysqli_connect_errno( $con ) ) {
    echo "failed to connect";
}else{
    echo "connected";
}
mysqli_close($con);
echo "Done";
?>
Run Code Online (Sandbox Code Playgroud)

有效,但是当我使用这段代码时,我得到的是:

Connected
Warning: mysql_close() expects parameter 1 to be resource, object given in D:\************.php on line 9
Done
Run Code Online (Sandbox Code Playgroud)

对于第一个和相同的除外mysqli_close().对于第二个.

问题是什么?我不能使用mysql_mysqli在一起?还是正常的?我可以检查连接是否有效吗?(if(mysq...))

php mysql mysqli pdo

102
推荐指数
2
解决办法
1万
查看次数

PHP MySQLI防止SQL注入

我已经建立了一个即将上线的网站,并且有一些关于防止SQL注入的问题,我理解如何使用,mysqli_real_escape_string但我只是想知道我是否必须在我得到的所有变量上使用它SQL语句,当我正在执行select语句时,或者只是在插入更新和删除时,我是否必须使用它?在我将网站上线之前,您还建议我实施其他安全措施,提前感谢您的帮助!

php mysql security mysqli code-injection

42
推荐指数
1
解决办法
5万
查看次数

检查mysql是否存在行

我需要帮助检查是否存在行.我收到"电子邮件不再存在publisher@example.com".

有没有更好的方法来检查mysqli是否存在行?

email no longer exists publisher@example.com
Run Code Online (Sandbox Code Playgroud)

php mysql mysqli pdo

34
推荐指数
3
解决办法
8万
查看次数

如何在PDO中使用密码哈希来使我的代码更安全?

我的代码实际上正在工作,但它根本不安全,我不想使用MD5,因为它不是那么安全.我一直在查找密码哈希,但我不确定如何将其合并到我的代码中.

登录:

require_once __DIR__.'/config.php';
session_start();

$dbh = new PDO('mysql:host=' . DB_HOST . ';dbname=' . DB_USERNAME, DB_USERNAME, DB_PASSWORD);

$sql = "SELECT * FROM users WHERE username = :u AND password = :p";
$query = $dbh->prepare($sql); // prepare
$params = array(":u" => $_POST['username'], ":p" => $_POST['password']);
$query->execute($params); // execute

$results = $query->fetchAll(); // then fetch


//hash passwords pls

if (count($results) > 0 ){
$firstrow = $results[0];
$_SESSION['username'] = $firstrow['username'];
echo "Hello $username you have successfully logged in";
//header ("location:.php");
}
else{
echo …
Run Code Online (Sandbox Code Playgroud)

php mysql security pdo password-hash

1
推荐指数
1
解决办法
1万
查看次数