「パスワード」列を SHA2 で暗号化しようとしています。問題は、MYSQL へのインジェクションが $_POST 変数を介して行われるため、SHA2() をどこに配置すればよいかわかりません。
ここに私の「挿入」ページ(inscreate.php)があります:
<?php
include 'header.php';
$ins="INSERT INTO users (uname, pwrd, bdate, mail)
VALUES ('$_POST[uname]','$_POST[pwrd]','$_POST[bdate]','$_POST[mail]')";
if (!mysqli_query($con,$ins))
{
die('Error: ' . mysqli_error($con));
}
echo "User added! You will be returned to the index page!";
mysqli_close($con);
?>
私が読んだことから、挿入クエリの「値」セクションにそれを入れる必要があります: http://coderlearner.com/MySQL_Encryption-Decryption_Example_SHA2
だから私はこれらの組み合わせを試しました:
$ins="INSERT INTO users (uname, pwrd, bdate, mail)
VALUES ('$_POST[uname]','SHA2($_POST[pwrd])','$_POST[bdate]','$_POST[mail]')";
ただし、パスワードがたとえば mypass の場合、データベースの出力は次のようになります: SHA2(mypass)
私はこれを試しました:
$ins="INSERT INTO users (uname, pwrd, bdate, mail)
VALUES ('$_POST[uname]',$_POST[SHA2(pwrd)]','$_POST[bdate]','$_POST[mail]')";
しかし、その後、解析エラーが発生します(理由は理解できますが、まだ試していました) だから私の質問は: $_POST を暗号化する方法を知っている人はいますか??