PHPファイルを作成して、書き込むJavascriptコードでのみロードして実行できる方法はありますか?私は誰かが自分のJSを読めず、自分のブラウザでPHPページを自分の変数でロードし、自分のデータベースに不正な変更を加えることができないことを確認できますか? ご迷惑をおかけして申し訳ございません。JSがPHPだけをロードしていることを確認する方法はありますか?
答えて
号
$_SERVER['HTTP_X_REQUESTED_WITH']
が設定されていて、「XMLHttpRequestを」に等しいているかどうかをチェックすることができますが、これは偽造することができ、単にHTTPヘッダーです。
Javascriptは、さまざまな方法で再生できる標準のHTTPリクエストを作成するだけです。 HTTPは非常に簡単なプロトコルであり、信頼できる方法でクライアントを区別することはできません。同一の要求は同一です。あなたは、HTTPの上にあなた自身のユーザー識別と承認のスキームを構築する必要があります、それはプロトコルの一部ではありません。サーバーは、承認されたものと、尋ねられた人ではなく、のルール(あなたが確立したもの)に基づいていないものを決定し、実施する必要があります。
PHPファイルを作成して、私が書いたJavaScriptコードでしか読み込みできないようにする方法はありますか?
確かに、どの要求もクライアント側で偽造することができます。この方法はセキュリティを確立するためには受け入れられません。サーバー側で何らかの認証を使用する必要があります。
いいえいいえ。たとえば10行のプログラムを書き込むのは簡単です。 Python、任意のユーザーエージェントを偽装する。どのような状況でもユーザーがあなたに送信するものは、これまで信用できません。
これを行うと、あなたの家族全員、あなたのすべての祖先に恥をもたらし、あなたの子孫を「その男」の子孫として永遠に非難することになります。
Javascriptによって送信されたリクエストヘッダーを確認することができます。 AJAXコールでは、次の行を送信する必要があります。
X-Requested-With: XMLHttpRequest
JavaScriptはデフォルトでこのヘッダーを送信しません。特定のJavaScriptライブラリ/フレームワークのみがAjax実装で動作します。 – BoltClock
それは安全ではありません、-1。 OPはセキュリティ目的でこれを使用することを明示しています –
- 1. ソケットがまだ開いていることを確認する方法はありますか?
- 2. 確かにUserControlが1回だけ含まれていることを確認
- 3. サーブレットがロードされていないことを確認する方法は?
- 4. PHP:ムービーフォーマットがMKVまたはWMVであることを確認する方法
- 5. QML要素がロードされているかどうかを確認する方法はありますか?
- 6. ユーザーの入力が数字だけであることを確認して要素を配列に追加する方法はありますか?
- 7. ユーザーがWikipediaのユーザーであることを確認していることを確認しますか?
- 8. nodejsでJSファイルを1回だけ "require"する方法はありますか?
- 9. プロパティが設定されていることを確認する方法はありますか?
- 10. Firebugがブラウザにインストールされていることを確認する方法はありますか?
- 11. Kerberosが使用されていることを確認する方法はありますか?
- 12. 変数がどこから来ているかを確認する良い方法はありますか?
- 13. 数字が正であることを確認する良い方法はありますか?
- 14. UIWebViewがロードされていることを確認する
- 15. NUnit Addinがロードされたことを確認する方法を教えてください。
- 16. 複製記事が正しいことを確認する簡単な方法はありますか?
- 17. IFのデフォルト値制約が存在しないことを確認する方法はありますか?
- 18. 戻り値のないストアドプロシージャが実行されたことを確認する方法はありますか?
- 19. mithril.jsがロードされているかどうかを確認する方法は?
- 20. 認証の間だけSSLを使用する方法はありますか?
- 21. PHPまたはJavascriptでiOSバージョンが3.0以上であることを確認してください
- 22. 値がPHPのコンマ区切り文字列であることを確認してください
- 23. アソシエーションが有効であることを確認する方法
- 24. 配列変数(unsigned int *)がメモリ上にあることを確認する方法はありますか?
- 25. iPad:UIViewサブクラスがフォントをサポートしているかどうかを確認する方法はありますか?
- 26. ブラウザがHistory.Pushstateをサポートしているかどうかを確認する方法はありますか?
- 27. 論理演算子ANDだけを使用して数値が4の倍数であるかどうかを確認する方法はありますか?
- 28. クライアントをカールで確認する方法はありますか?
- 29. ミュート状態を確認する方法はありますか?
- 30. PHPでプロファイラを使用してどのファイルがロードされているかを確認する方法
ありがとうございます。あなたが安全であるJS/PHPリクエストとレスポンスモデルを構築する方法を私に示してくれることを偶然何か指摘できますか? – dshipper
@dshipper「公開API」の場合、それを実際に保護する方法はありません。ユーザーログインが必要でセッションクッキー(すべてのAJAXリクエストとともに送信される)を使用している場合は、これを使用して特定のユーザーを特定し、このユーザーが特定のことを行う権限を持っているかどうかを判断できます。ユーザー=すべての要求に対して1つのセキュリティルール=承認なし。あなたの状況についての詳細を含む新しい質問を開いて、より多くの提案を得ることをお勧めします。 – deceze
もう一度ありがとう! – dshipper