Yahoo PipesでUserIDを隠す JSONP&Javascript

前記事に引き続き、JSONP&Javascript&UserID守秘義務関連ネタ。

楽天ウェブサービスなどが提供しているJSONP形式の商品データは、Javascriptで呼び出すことができます。

しかし、Javascriptだと、スクリプトコード上のUserIDを完全に隠すことはできません。

難読化(ぱっと見では読めない)はできますが、それなりの知識がある人なら、見破ることは可能です。

Yahoo Pipesを利用して、解決する方法を思いつきました。

そもそもおかしい?

JSONPデータを配布しているのにもかかわらず、UseIDに守秘義務を課すサービスに、違和感を感じます。

高速道路のスピード制限が100kmなのに、180kmまでスピードを出せる自動車ってどうなの?と同じような感じでしょうか?

当方のブログパーツは、スクリプトコード内に難読化されたUserIDが書き込まれていて、普通には読めないような対応をしています。しかし、これは完全な対策ではありません。

プログラムが組める方は、サーバサイドに設置したデータ取得用のスクリプトを中継すれば、UserIDを完全に守秘してデータを取得できます。

けど、これではJSONPを配布している意味がないですよね。
それに、この方法はプログラム知識がないと利用できません。

Yahoo! Pipesを利用

そこでYahoo!Pipesというサービスを利用した対策を考えました。プログラムができない人でもOKです。

Yahoo! Pipesはウェブ上のデータを取得して、RSSやXML、JSONなどのデーターに変換してくれる太っ腹のサービスです。

取得先のURLや、データーの加工などは、インタラクティブな管理画面上から、電気製品をコンセントにつなぐような感覚で、くみ上げることができます。

詳しい利用方法についてはこちらが詳しいです。

http://netafull.net/lifehack/025274.html
http://chikura.fprog.com/index.php?UID=1175617938

Yahoo pipesを経由してデータを取得すれば、UserIDを隠せます。Input dataのモジュールの中の、「Private String」にUserIDを入力すれば、自分以外の人は、この値を読むことができません。

つまり、「Yahoo pipesでクエリを生成してデータを呼び出し&取得し、JSONP形式で吐き出す」ことで、UserIDを隠すことができるわけです。

設定例については、当方のブログパーツ「楽市360」の、「セキュリティ強化版ブログパーツ設定」を参考にしてみてください。

Yahoo Pipesはすばらしい

Yahooはなんでこんなにすばらしいサービスを無料で提供しているのでしょう。

もちろん利用制限はあるようです。常識的な利用方法であれば問題ないみたいです。
http://discuss.pipes.yahoo.com/Message_Boards_for_Pipes/threadview?m=te&bn=pip-DeveloperHelp&tid=3783&mid=-1&tof=-1&rt=2&frt=2&off=1#-1

10分程度のキャッシュをしてくれるようです。ウェブサービスへの負荷を減らしてくれるため、助かります。

+++

とはいっても、Yahoo Pipesを利用しても、「JSONPを配布しておきながら、UerIDへ守秘義務を課す」という矛盾は解決しないんですけどね。

結局、サーバーサイドの仕組み(Yahoo Pipes)を中継してデータを取得するという、超無駄なことをしています。

規約を厳密に尊守すれば、今回のような方法をとることがベストです。

しかし、現実的には、当方のブログパーツのように、いわゆる「難読化」をしておけば良いと思います。

第三者にUserIDが漏えいして悪用された場合、UseIDを無効化しても意味がないと思います。そういった輩はUserIDをたくさん集めていると思いますので。アフィリエイトIDを無効化したほうが、効果的です。

無難に事を進めたいという方は、参考にしてみてください。

コメント

タイトルとURLをコピーしました