JavaScriptのXHRを使ってデータの更新を行っています
データの取得元への直アクセスを遮断する方法をお聞きしたいです
取得元であるa.phpにはリファラによる制限とXHR経由か判定する処理を入れました
とりあえず自サイト外からの直アクセス、XRH経由でないアクセスを遮断する策はできました(どちらも偽装はできてしまいますが)
これである程度満足はできたつもりでしたが、
ブラウザ(Firefox)の開発ツールのネットワークに出てくるログのURLから普通にアクセス可能であるということが判明しました
他サイトを見るとネットワークにログを出さず外部からデータ通信を行ってるのは、
node.jsなど使われてるのだと思いますが、
XHRを使ってる以上、外部から見れなくする事は不可能でしょうか
何か知識をお持ちであれば教えていただけませんでしょうか
a.php <?php if(strstr($_SERVER['HTTP_REFERER'],"domain.com")){ if(isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') { echo "外部から見られたくないデータ"; }else{ echo "見ないで下さい"; }else{ echo "見ないで下さい"; } ?>
XHR
1<script> 2window.onload=function(){ 3x=new XMLHttpRequest() 4x.overrideMimeType("text/plain; charset=shift_jis"); 5x.onreadystatechange = function () { 6if (x.readyState == 4 && x.status == 200) { 7alert(x.responseText); 8} 9} 10x.open("POST", "a.php", true); 11x.setRequestHeader('X-Requested-With', 'XMLHttpRequest'); 12x.send(); 13} 14</script>
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2020/11/29 10:01