html
1<?php 2if(isset($_COOKIE["id"])){ 3 $id=$_COOKIE["id"] 4 }else{ 5 $id=""; 6 } 7?> 8<!DOCTYPE html> 9<html lang="jn"> 10<head> 11 <meta charset="utf-8" /> 12</head> 13<body> 14 <form action="xxx.php" method="get"> 15 <dl> 16 <dt><label for="id">ID</label></dt> 17 <dt><input type="text" name="id" id="id" value=<?php echo $_GET["id"];?></dt> ・・・ ★ 18 <dt><label for="pass">パスワード</label></dt> 19 <dt><input type="password" name="pass" id="pass" value="<?php echo $pass;?>" /></dt> 20 <dt>IDの保存</dt> 21 <dt><input type="checkbox" value="on" name="check" />IDを保存する</dt> 22 <dt><input type="submit" value="送信する" /></dt> 23 </dl> 24 </form> 25 </body> 26</html>
PHP
1<?php 2$id=$_GET["id"]; 3$pass=$_GET["pass"]; 4$check=$_GET["check"]; 5 6if($check=="on"){ 7 setcookie("id",$id,time()+60*60); 8 setcookie("pass",$pass,time()+60*60); 9 $message="ログイン情報を記録しました。"; 10 11}else{ 12 setcookie("id",""); 13 $message="記録しませんでした。\n"; 14} 15echo $message; 16 17?>
クエリストリングに
PHP
1id=<script><script>alert(document.cookie);</script>
を入れるとうまくXSSできるのですがフォームのIDの入力欄に入れるとできなのはなぜでしょうか?
また、★の行を
PHP
1<dt><input type="text" name="id" id="id" value=<?php echo $id;?></dt>
とすると、クエリストリングでもフォーム入力でもXSSできないのはなぜでしょうか?
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。