更新日:2019.06.01
ホームページや個人ブログなど,Webサイト運営をしている人に向けて,SQLインジェクションやクロスサイトスクリプティング等の攻撃を受けないための最低限のセキュリティ対策まとめ
<?php $a=$_GET['a']; echo $a; ?>
$a="<hr><hr><hr>"
$a="<script>alert('scriptの実行');</script>"
解決法
<?php $a=$_GET['a']; echo htmlspecialchars($a, ENT_QUOTES, 'UTF-8'); ?>
$a="<hr><hr><hr>"
$a="<script>alert('scriptの実行');</script>"
<hr><hr><hr>
<script>alert('scriptの実行');</script>
<?php $a=$_GET['a']; $stmt=$db->query("SELECT * FROM user_info WHERE user_name='$a'"); ?>
SELECT * FROM user_info WHERE user_name='';DELETE FROM user_info;'
解決法
<?php $db = new PDO('mysql:host=○○○○;dbname=○○○;charset=utf8mb4','', ''); $db->setAttribute(PDO::ATTR_EMULATE_PREPARES,false); ?>
$a=$_GET['a']; $stmt=$db->prepare('SELECT * FROM user_info WHERE user_name=?'); $stmt->bindvalue(1,$a); $stmt->execute();
$a=$_GET['a']; $stmt=$db->prepare('SELECT * FROM user_info WHERE user_name=:names'); $stmt->bindvalue(':names',$a); $stmt->execute();
php.ini display_errors = Off
解決法
.htaccess
<Files "password.txt">
deny from all
</Files>