MySQLi 문 또는 PDO를 사용하여 다음 작업을 수행하려고했지만 서버에서 많은 오류가 발생했습니다.이 MySQLi는 안전한가요?
내가 수행 한 코드를 배우려면 다음 예제를 사용해도 안전하고 괜찮은지 확인하십시오. 그리고 다음 코드는 새로운 MySQLi 사용자가 적어도 MySQLi로 시작하는 방법을 배우는 데 도움이 될 것입니다.
<?php
$host = "localhost";
$username = "db_user";
$password = "db_pass";
$dbname = "db_name";
@ $db = mysqli_connect($host, $username, $password, $dbname);
if(mysqli_connect_errno())
{
die("Connection could not be established");
}
$username = mysqli_real_escape_string($db, $_GET['user']);
$query = ("SELECT * FROM members WHERE profile='$username' ORDER BY id DESC LIMIT 1");
$result = mysqli_query($db, $query);
while($row = mysqli_fetch_array($result))
{
?>
PROFILE VIEW
<br>Name: <?php echo $row['nombre']?> ID: <?php echo $row['Age']?> <br />
<?php
}
?>
모두 잘 작동합니다. 누군가가 그것을 더 안전하게 만들 수 있다면, 나는 그것을 고맙게 생각할 것입니다.
가장 안전한 가정은 사용자 데이터가 항상 악의적 인 것입니다. 두 번째로 가장 안전한 가정은 매개 변수화 된 입력이있는 prepared statement를 항상 사용하는 것입니다. –
대문자로 사용하지 마십시오. 당신은 2 가지 다른 것들에 대해 변수를 재사용합니다, 나는 그 안전이라고 부르지 않습니다. 나는 또한 사용자 입력을 더 위생적으로 만들 것이다. $ query = (""); 유효하지만 문자열을 정의하는 방법이 아닙니다. 그 주변의 (와)를 제거 할 수 있습니다. –
이 질문은 [codereview] (http://codereview.stackexchange.com/) – Quentin