質問失礼します。
ボタンをクリックするとデータベースのあるカラムの数字がインクリメントされていくプログラムを作っています。
下記のように作っています。
index.php
<button id="fini" data-clickcount="<?=$fini?>">クリック回数:<?=$fini?></button>
$finiはデータベースから取得した整数を入れています。
index.phpに記述しているScript
$('#fini').on('click', function(){ var token = "<?php echo $token;?>"; $.ajax({ url: "./count-up.php", type: "POST", data: {"token":token} }).done(function(){ var fini = document.getElementById("fini"); var number = fini.dataset.clickcount; newNumber = parseInt(number) + 1; fini.setAttribute('data-clickcount', newNumber); fini.textContent="クリック回数:" + newNumber; }) });
var token = "<?php echo $token;?>";の部分で見えてしまいます。
count-up.php
$token = $_POST['token']; if($token == "" || $token != $_SESSION['token']){ header("Location: index.php"); exit(); } //以下DBのカラムをインクリメントをするコード
count-up.phpを直接検索された時の為にif($token == "" || $token != $_SESSION['token'])を設定しています。
上記を設置した経緯は、
count-up.phpを直接検索された場合、indexにリダイレクトさせようと思い、POSTが空ならと思いましたが、それだとPOSTに適当な値が入っていてもif文を通過出来てしまうため、ランダムな値をSESSIONに入れそれが一致していなければその場合もリダイレクトが出来ると思って使いました。
しかし上記やり方だとトークンがディベロッパーツールのSourcesで見えてしまいます。
それは見えたトークンと一緒の値をPOST送信出来てしまうのでは?と思いました。
これを見えなくするには何か良い方法はないでしょうか?
または、count-up.phpを直接検索された時の対処法で他に何かあるのでしょうか?
回答2件
あなたの回答
tips
プレビュー