htmlspecialchars — 特殊文字を HTML エンティティに変換する
ができていない トラブル だと思います。
以下 掲示板 のプログラムです。
keizi_top.php トップ画面 と keizi.php とで
関連する ファイルは 他にも あるのですが ここで
関連している 2個ファイルのみ記載しました。
2個ファイルのみでで 結果が 同じでしたので 2個ファイル
バク だと 考られます。
さて
以下の 最初のファイルである keizi_top.php の中に
/*** スレッド名の変数$su_dにデータがあればtbj0に挿入 ***/
$su_d=isset($_GET["su"])? htmlspecialchars($_GET["su"]):null;
ありますが 同ファイルの
<input type="text" name="su" size="50">
の書き込み BOX に 特殊文字 である < > & 三種類
試しに 送信しました
結果 以下です。
42 <
2022-04-05 00:35:02作成
43 >
2022-04-05 00:35:09作成
45 &
2022-04-05 00:35:30作成
以上ですが htmlspecialchars が 機能していれば
< は <
> は >
& は &
に 変換 されるところですが 変換 されずに
そのまま 出てきます。 これだと 攻撃の対象となります。
もしよろしければ MAMP を 使用していますので
試しに 試験 していただけましたら 助かります。
私の MAMP などに 問題 がある可能性も でてきます。
とりあえず
以下の プログラムで なにか バグが ありますか?
よろしくお願いいたします。
ファイル名 keizi_top.php
<?php
/*** データベース情報等の読み込み ***/
require_once("data/db_info.php");
/*** データベースへ接続、データベース選択 ***/
$s=new pdo("mysql:host=$SERV;dbname=$DBNM",$USER,$PASS);
/*** タイトル、画像等の表示 ***/
print <<<eot1
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>SQLカフェのページ</title>
</head>
<body style="background-color:silver">
<img src="pic/jk.gif" alt="女子のイラスト">
<span style="color:purple;font-size:35pt">
SQLカフェ掲示板だよ
</span>
<p>見たいスレッドの番号をクリックしてください</p>
<hr>
<div style="font-size:20pt">(スレッド一覧)</div>
eot1;
/*** クライアントIPアドレス取得 ***/
$ip=getenv("REMOTE_ADDR");
/*** スレッド名の変数$su_dにデータがあればtbj0に挿入 ***/
$su_d=isset($_GET["su"])? htmlspecialchars($_GET["su"]):null;
if($su_d<>""){
$s->query("INSERT INTO tbj0 (sure,niti,aipi) VALUES ('$su_d',now(),'$ip')");
}
$re=$s->query("SELECT * FROM tbj0");
while($kekka=$re->fetch()){
print <<<eot2
<a href="keizi.php?gu=$kekka[0]">$kekka[0] $kekka[1]</a>
<br>
$kekka[2]作成<br><br>
eot2;
}
/*** スレッド作成フォーム、検索ページへのリンク ***/
print <<<eot3
<hr>
<div style="font-size:20pt">(スレッド作成)</div>
新しくスレッドを作るときは、ここでどうぞ!
<br>
<form method="GET" action="keizi_top.php">
新しく作るスレッドのタイトル
<input type="text" name="su" size="50">
<div><input type="submit" value="作成"></div>
</form>
<hr>
<span style="font-size:20pt">(メッセージ検索)</span>
<a href="keizi_search.php">検索するときはここをクリック</a>
<hr>
</body>
</html>
eot3;
?>
No.1ベストアンサー
- 回答日時:
よく質問文を読んでいませんが、ブラウザの画面にそう表示されるという話だったら、例えば次のHTMLをブラウザで表示して見たら何が起こっているか気づくでしょう。
ーーーここから
<html>
<body>
<&>
</body>
</html>
ーーーここまで
ありがとうございました。
例えば次のHTMLをブラウザで表示して見たら何が起こっている
とりあえずブラウザのソース表示 しました。
<a href="keizi.php?gu=<">42 <
<a href="keizi.php?gu=>">43 >
<a href="keizi.php?gu=&">45 &</a>
しかし >>>>>>>>>>>>> ですが 13個 入力したところ
<a href="keizi.php?gu=>>>>>>>&g">3 >>>>>>>&g</a>
最後が & は & に 変換されていますね!
htmlspecialchars — 特殊文字を HTML エンティティには
機能しているみたいです。
文字数が 少なかった のが 原因 だと思います。
さすがに攻撃している側も 1文字では 攻撃できないので
これでいいのかと思われます。
いろいろ試していたら スレッド 行数が 100行ぐらいなりました
ので mysql テーブル のデータ を 削除クエリで
1度削除しましたので スレッドの 先頭につく数字が 順不同
となりました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- HTML・CSS アコーディオンメニューが思うように動作しません。 1 2023/08/20 16:48
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
- JavaScript clear機能を失わずにファイルアップロード機能を作成したい 3 2023/06/10 16:12
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
.phpと.incファイルの違いはな...
-
URLが.PHPってどういう...
-
thtmlファイルとはどんなファイ...
-
.phpファイルが、表示されない
-
サイトのphpソースコードを表示...
-
PHP+MySQL SQL文を外部ファイル...
-
PHPファイルの中身が見られるこ...
-
【file_exists】ファイルが存在...
-
テキストボックスの値をファイ...
-
シェルコマンドでphpを実行した...
-
PHPの戻り値をWINDOWSバッチフ...
-
別のドメインのファイルをrequire
-
サーバー間のファイルの移動(コ...
-
EUC_JP と EUC-JP
-
chmod と 所有者apache
-
フォントの色を変えるには?
-
PHPのWARNINGをcatchするには
-
onedrive にexcelファイルをア...
-
PHP8を使うと、大量のWarningが...
-
バッチを用いたフォルダの自動移動
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【file_exists】ファイルが存在...
-
.phpと.incファイルの違いはな...
-
.phpファイルが、表示されない
-
URLが.PHPってどういう...
-
phpinfoの内容が見れない
-
PHPを使ってのサーバ上ファイル...
-
PHPの戻り値をWINDOWSバッチフ...
-
htmlspecialcharsが機能してい...
-
サーバ無しでphpを動作させる
-
プロパティファイルの読み込み...
-
CakePHP2のCronでのShellを使う...
-
HTMLに埋め込んだPHPがうまく出...
-
htdocsフォルダ以外ではPHP...
-
PHP+MySQL SQL文を外部ファイル...
-
apacheで拡張子を省略してアク...
-
サイトのphpソースコードを表示...
-
XAMPPのPHPファイルがNotFound。
-
CakePHPの .htaccess設定について
-
phpで別のファイルの変数に代入...
-
use と requireの違いは?
おすすめ情報
どうもすみません。
文字数制限で 2個目の keizi.php プログラムは 以下
URL から ご覧になれます。 よろしくお願いいたします。
http://afurieitohannei.la.coocan.jp/sns/keizi.htm