質問: いつも勉強させて頂いております。 表題の件ですが、 楽天の商品検索APIをjavascriptで作成しております。 アプリIDを直接記載していると、悪用される恐れがあることから、 別ファイルにて管理し、管理ファイルからアプリIDを読み込んでいます。 この別ファイルですが、使用しているサーバーに制限があり ・PHPやCGIなどのサーバー側で制御するようなものは不可 ・htaccessの設置不可 となっております。 また、ファイルは表示領域に置かないといけない為URLが分かれば ブラウザから簡単にIDを見ることができるようになっております。 私が考えつく限りは ・アクセスができないようにする(アクセス制限) ・javascriptを難読化 なのですが、 悪用されないようにほかに何か良い方法はないでしょうか? よろしくお願いいたします。 以下にアプリIDを参照する際のコード部分を追記します。 ``` $.get("ファイルパス", function(test){ $.get('https://app.rakuten.co.jp/services/api/IchibaItem/Search/20170706?', { applicationId: test, keyword: 'テスト',) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~(以下略) ```
回答: この条件では、秘匿するのは**無理です**。 というのも、「サーバー側で制御するようなもの」が置けないような環境でJavaScriptで動作するものを実行している、ということは、それは**閲覧者のブラウザの中で**動作している、ということになります。 そのような状況下では、JavaScriptを実行するブラウザに対して何かを隠す、ということは不可能です。いくらコード上から隠そうとしても、投げられるリクエストを開発ツールで見れば、キーは明記してあるはずです。