PHP面接のMySQLセキュリティ
858 ワード
MySQLクエリのセキュリティスキーム前処理文を使用して、id=1を削除するユーザ のようなSQL注入を防止する.データベースに書き込まれたデータは、特殊文字のエスケープ を行う.クエリエラー情報はユーザに返さず、ログ にエラーを記録する.
PHP側はできるだけPDOを使ってデータベースを操作し、PDOは前処理をよくサポートしている.MySQLiもありますが、拡張性はPDOに及ばず、効率はPDOより高いです.
延長:MySQLのその他のセキュリティ設定定期的にデータベースのバックアップを行う クエリーユーザーroot権限を与えず、合理的に権限を割り当てる リモートアクセスデータを閉じる権限 rootパスワードを変更し、デフォルトパスワードを使用せず、比較的複雑なパスワード を使用します.余分なユーザ を削除する. rootユーザの名前を変更する 一般ユーザが他のライブラリ を閲覧することを制限する.ユーザのデータファイルへのアクセスを制限 .
delete from user where id=1;
# get id ,GET ?id=1,
user/delete?id=1 # 。
user/delete?id=1 or 1=1 # 1= or 1=1, SQL :
delete from user where id=1 or 1=1 # , user
#
delete from user where id=?; # MySQL , `1 or 1=1` or (prepare)
PHP側はできるだけPDOを使ってデータベースを操作し、PDOは前処理をよくサポートしている.MySQLiもありますが、拡張性はPDOに及ばず、効率はPDOより高いです.
延長:MySQLのその他のセキュリティ設定