【发布时间】:2017-04-22 15:35:02
【问题描述】:
我有一个应用程序,它从 MySQL 数据库中获取数据并将数据插入其中(用户正在写入要插入的数据),老实说,我对 php 很陌生,对安全和清理知之甚少字符串, 我想让 php 文件更安全,我不知道要查找什么才能执行此操作,如果有人可以发送教程,那就太好了。
这里是选择和插入代码
<?php
header('Content-Type: text/html; charset=utf-8');
$db = "*********";
$username = "*********";
$password = "*******";
$host = "************";
$sql = "select * from sample;";
$conn = mysqli_connect($host,$username,$password,$db);
$conn->set_charset('utf8');
$result = mysqli_query($conn,$sql);
$response = array();
while($row = mysqli_fetch_array($result))
{
array_push($response,array($row[0],$row[1],$row[2]));
}
$str = json_encode(array($response),JSON_UNESCAPED_UNICODE);
$str = clean($str);
echo $str;
mysqli_close($conn);
function clean($string) {
$string = str_replace(' ', ' ', $string);
$string = preg_replace('/[^a-zA-Z0-9,×-×–, : . -]/', '', $string);
return preg_replace('/-+/', '-', $string);
}
?>
和插入:
<?php
$db = "*********";
$username = "*********";
$password = "*******";
$host = "************";
$conn = mysqli_connect($server_name,$mysql_username,$mysql_password,$db_name);
$name =$_POST["name"];
$publisher=$_POST["publisher"];
$date=$_POST["date"];
$sql_query = "insert into sample(name,publisher,date)
values('$name','$publisher','$date');";
if(mysqli_query($conn,$sql_query))
{
echo "data inserted";
}
else
{
echo "error";
}
?>
【问题讨论】:
-
如果您使用 mysqli 查询内容,请使用
prepared statements! (扩展为你处理)
标签: php mysql sql security sanitize