이전에는 일반적인 mysqli
쿼리를 사용하여 데이터베이스에 값을 삽입하여 real_escape_string
보안을 설정했지만 더 나은 보안을 위해 준비된 명령문을 사용하는 것으로 보입니다. 보안을 강화하고 SQL 삽입을 방지하기 위해 준비된 문으로 코드를 대체 하겠지만 아래에 주어진 준비된 문이 얼마나 안전한지 알고 싶습니다. 더 나은 보안을 위해 더 이상의 개선을 제안 할 수 있습니까?이 mysqli 준비 문은 얼마나 안전합니까?
$stmt = mysqli_prepare($DB_connection,"INSERT INTO `posts`(`example`, `example2`) VALUES ('$for_example',?)");
mysqli_stmt_bind_param($stmt, 's', $_POST['username']);
mysqli_stmt_execute($stmt);
mysqli_stmt_close($stmt);
POST 메서드를 사용하여 양식에서 값을 가져 와서 데이터베이스에 추가합니다. 사용자가 SQL 삽입으로 데이터베이스의 값을 바꿀 수 있습니까?
사전에 도움을 주셔서 감사합니다. PHP 설명서에서
'$ 무엇을 for_example'입니까? – deceze
'$ for_example'을 다음과 같이 세션 변수로 대체합니다. $ _SESSION [ 'username']'등 – mwaseema