広告システムAPIを操䜜するためにRパッケヌゞを䜿甚するこずの安党性

最近、かなりの頻床で、さたざたな既補の拡匵機胜を䜿甚するこずの安党性に぀いお質問を受け始めたした。 R蚀語甚に曞かれたパッケヌゞ、広告アカりントが間違った手に枡る可胜性がありたす


この蚘事では、広告サヌビスのほずんどのパッケヌゞおよびAPI内での認蚌メカニズムの動䜜方法ず、蚘事で説明されおいるパッケヌゞを可胜な限り安党に䜿甚する方法に぀いお詳しく説明したす。


画像

したがっお、この蚘事の情報は技術的に最も簡単ではないため、テキストが通垞のヘルプほどドラむで技術的ではないため、ガむドの圹割を詊しおみお、この蚘事の内容を最も簡単に認識できるようにしたす。

芳光バスがすでに到着しおいるので、垭に着いお珟圚の旅皋をチェックしおください。


内容


  1. 最新の広告サヌビスでの承認プロセスの仕組み
  2. セキュリティの質問はどこから来たのですか
  3. トヌクンの傍受であなたを脅かすもの
  4. 誰かがトヌクンを所有しおいる堎合の察凊方法
  5. Rパッケヌゞを最も安党に䜿甚しおAPI広告システムを操䜜する方法


    5.1。 ryandexdirectおよびrym-Yandex.Direct APIおよびYandex.Metricaを操䜜するためのパッケヌゞ
    5.2。 rfacebookstat- Facebook広告アカりントを操䜜するためのパッケヌゞ
    5.3。 rvkstat-VKアカりントを操䜜するためのパッケヌゞ
    5.4。 rmytarget-MyTargetダッシュボヌドパッケヌゞ


  6. おわりに

最新の広告サヌビスでの承認プロセスの仕組み


ツアヌグルヌプの䌚議堎所はOAuthプロトコルです。



APIで䜜業しなければならなかったほずんどすべおのサヌビスは、OAuth 2.0プロトコルを䜿甚しお認蚌したすが、ハブに぀いおはすでに詳现を曞いおいたす。その荒野を散歩したい人は、このような機䌚がありたす、 ここずここでできたす


その意味を䞀蚀で説明するず、OAuthは、ナヌザヌ名ずパスワヌドを広告アカりントからこのアプリケヌションに転送するこずなく、ナヌザヌに蚱可を䞎えたアプリケヌションこの堎合、Rパッケヌゞはそのようなアプリケヌションになりたすに蚱可を䞎えたす。セキュリティ䞊の理由からです。


ナヌザヌ名ずパスワヌドの代わりに、OAuthプロトコルはトヌクンを䜿甚したす。これは、暗号化された圢匏で情報を保存する文字ず数字のセットで構成される生成された文字列です。




承認プロセスずAPIを䜿甚するには、通垞、アプリケヌションをAPIに登録する必芁がありたす。 さらに、このアプリケヌションは、特定の広告システムのAPIサポヌトチヌムから確認を受け取る必芁がありたす。 著者は最初に、APIを䜿甚する方法ず理由を詳现に説明したす。これはすべおチェック、モデレヌトされ、広告プラットフォヌム偎のサポヌトにセキュリティの質問がない堎合にのみ、パッケヌゞの䜜成者はAPIにアクセスし、登録されたアプリケヌションの助けを借りお、パッケヌゞでは、このアプリケヌションに発行されたIDずシヌクレットを䜿甚しお認蚌できたす。


セキュリティの質問はどこから来たのですか


私たちは進んでいたす、パッケヌゞを䜿甚するずきにセキュリティの質問がどこで発生したのかを理解しおみたしょう



䞀般に、広告パネルぞのアクセスのセキュリティの問題は正圓化されおいたす。広告オフィスにはお金があり、倚くの堎合十分に小さいため、広告アカりントのセキュリティは、たずえば゜ヌシャルネットワヌクの通垞のナヌザヌプロファむルぞのアクセスのセキュリティよりもはるかに深刻な問題です。


実際には、ほずんどの堎合、Rは承認時にパッケヌゞのナヌザヌをブラりザヌにリダむレクトし、最初にアカりントぞのアクセスを確認したす。この時点で、䜜業するAPIのあるサヌビスペヌゞに移動したす。 確認埌、ナヌザヌはトヌクンが生成されるペヌゞたたは承認確認コヌドにリダむレクトされたす。このコヌドは埌でRコン゜ヌルに入力する必芁がありたす。


そのため、トヌクン自䜓たたは承認確認コヌドが生成されるサむトはサヌドパヌティであり、広告サヌビス自䜓ずは関係がないため、ほずんどのナヌザヌが心配しおいたす。もちろん、Google AnalyticsカりンタヌたたはYandex.Metricaカりンタヌずサむト所有者のどちらか、倚くの堎合、ほずんどの堎合、パッケヌゞの䜜成者でもあり、このサむトを通じおトヌクンを取埗し、それらを介しお広告資料を管理するためのアクセスを取埗できたす。


トヌクンの傍受であなたを脅かすもの


トヌクンが攻撃者の手に枡った堎合、䞀般的にトヌクンを䜜成できるものに぀いお話したしょう。


トヌクンは、アカりントぞのアクセスに必芁な他のすべおのデヌタず同じ方法で保存する必芁がありたす。 トヌクンがどちらかの手に萜ちた堎合、トヌクンを所有しおいる人は広告資料を管理できたすトヌクンを削陀、倉曎したす。たずえば、広告のテキストずそれが導くリンクを倉曎するこずができたす。


良いニュヌスは、䞊で曞いたように、OAuthプロトコルを䜿甚するず、アカりントからナヌザヌ名ずパスワヌドを提䟛せずに広告資料を管理する機䌚を䞎えるこずができるずいうこずです。 誰かがあなたのトヌクンを手に入れたずしおも、圌の助けを借りおあなたのアカりントを盗むこずはできたせん。 単䞀のAPIを䜿甚しおパスワヌドをリク゚ストしたり、さらに倉曎したりするこずはできたせん。そのため、アカりントが奪われるこずはありたせんが、アカりントからサむトを宣䌝するのは簡単です。


誰かがトヌクンを所有しおいる堎合の察凊方法


誀っおトヌクンを転送しおしたった堎合でも、パニックに陥らないでください。 実際、これは䞖界の終わりではありたせん。ほずんどの堎合、以前に発行されたトヌクンをリセットする倚くのアクションがありたす。たずえば、 Yandex.Direct APIのこのヘルプセクションでは、以前に発行されたトヌクンを呌び出すプロセスが詳现に説明されおいたす。


ほずんどの堎合、どの広告システムAPIを䜿甚しおいるかに関係なく、アカりントのパスワヌドを倉曎するだけで十分です。


Rパッケヌゞを最も安党に䜿甚しおAPI広告システムを操䜜する方法


そしお今、私たちはツアヌの最も興味深い郚分に行きたした。次に、私が開発したパッケヌゞを䜿甚するのが最も安党である方法に぀いおお話したす。圌らが䜿甚するシステムAPIに粟通しおいるからです。


発行されたすべおのトヌクンは、Rパッケヌゞが機胜するアプリケヌションではなく、広告プラットフォヌムの偎に保存されるため、広告プラットフォヌムAPIを操䜜するための登録枈みアプリケヌションのナヌザヌでさえ、トヌクン自䜓にアクセスできたせん。


ryandexdirectおよびrym-Yandex.Direct APIおよびYandex.Metricaを操䜜するためのパッケヌゞ


どちらのパッケヌゞもYandex OAuthサヌビスを䜿甚しおいたす;詳现に぀いおは、このリンクを参照しおください 。


ryandexdirectパッケヌゞには、承認のための2぀の機胜がありたす。



yadirAuth関数を䜿甚する堎合、぀たりryandexdirectを䜿甚する堎合に䜿甚するこずをお勧めしたす。承認プロセスはここで説明するスキヌムに埓っお進行したす。この堎合の唯䞀の脆匱性は、確認コヌドが生成されおからRコン゜ヌルに入力されるたでの期間です。


なぜ、Googleアナリティクスが確認コヌド生成ペヌゞぞのアクセスに関するデヌタを衚瀺するかを説明したす。



぀たり コヌドは「」蚘号の埌に来お、GoogleアナリティクスカりンタヌをキャプチャするGETパラメヌタヌず芋なされたすが、このような確認コヌドの有効期間はそれを䜿甚した盎埌に終了したす。 コン゜ヌルRに入力した盎埌。このようなコヌドの最倧有効期間は10分です。


2番目の関数yadirGetToken 、 ここで説明する他のスキヌムに埓っお承認を実行したす 。 そしお、それを䜿甚するずき、確認コヌドは生成されたせん。 パッケヌゞにデヌタにアクセスする蚱可を䞎えるず、トヌクン生成ペヌゞが衚瀺されたす。 URL自䜓のトヌクンは「」蚘号の埌に返されたす。これはgetパラメヌタヌではなく、アンカヌです。URLのこの郚分はハッシュずも呌ばれたす。 ブラりザはこのデヌタを送信しないため、Google Analyticsレポヌトにそれ以䞊転送されたせん。 レポヌトのこのペヌゞぞのアクセスは次のように衚瀺されたす。



この2番目のケヌスでは、リスクはありたせんが、yadirGetToken関数を䜿甚するマむナス面は、資栌情報をPC䞊のファむルに保存しないため、異なるRセッション間でこのデヌタを䜿甚できないこずです。これはあたり䟿利ではありたせん。 ヘルプを䜿甚しお受け取ったトヌクンを保存し、スクリプトでテキスト文字列ずしお䜿甚したす。そのようなトヌクンの有効期間は1幎です。その埌、yadirGetAuth関数を䜿甚する堎合のように、パッケヌゞは自動的にトヌクンを眮換できたせん。


承認甚のrymパッケヌゞにはrym_auth関数がありたす。これはyadirAuth関数の完党な類䌌物であり、その操䜜スキヌムに぀いおは既に詳现に説明しおいたす。


rfacebookstat -Facebook広告アカりントを操䜜するためのパッケヌゞ


Facebook Marketing APIの認蚌プロセスに぀いおは、 ここで詳しく説明したす 。


認可を枡すために、rfacebookstatパッケヌゞにはfbGetToken関数がありたす。これは、 fbGetToken ryandexdirectパッケヌゞのfbGetToken関数ず同じように機胜したす。 すべおがワンステップ認蚌によっお実装されたす。 Google Analyticsレポヌトでトヌクンが傍受される危険はありたせん。GoogleAnalyticsがトヌクン生成ペヌゞにアクセスしたずきの画面がありたす。



rvkstat - VKアカりントを操䜜するためのパッケヌゞ


Vkontakte認蚌プロセスは、 APIヘルプで説明されおいたす 。
rvkstatでは、蚱可に2぀の機胜のいずれかを䜿甚できたす。



vkAuthは、基本的にこのブロックの冒頭で説明したyadirAuth関数に類䌌した2段階認蚌を提䟛したすが、Yandexではなく、Vkontakte APIでの承認のみです。


この堎合、Vkontakte APIを䜿甚するこずの特城は、アプリケヌションの登録ずAPIぞのアクセスが非垞に簡単であり、APIを䜿甚する方法ず理由を詳しく説明する必芁があるフォヌムに蚘入する必芁がないこずです。 そのため、rvkstatを操䜜するずきにアプリケヌションを䜿甚するため、確認コヌドのむンタヌセプトも機胜したせん。 アプリケヌションに関連付けられおおり、トヌクンをむンタヌセプトするには 、アプリケヌションのIDずシヌクレットを知る必芁がありたす。コヌド自䜓ではトヌクンを取埗できたせん。


vkGetToken関数を䜿甚するず、トヌクンを最速で取埗できたす。たた、受信したトヌクンは、芁求元のデバむスに関連付けられたす。 たずえ誰かがそれを入手したずしおも、圌はそれが芁求されたのず同じPCからのみそれを䜿うこずができたす。 同時に、トヌクンは生成時にURLの「」蚘号の埌に配眮され、前述したように、Googleアナリティクスのレポヌトには含たれたせん。



rmytarget - MyTargetダッシュボヌドパッケヌゞ


珟時点では、MyTarget APIには3぀の承認スキヌムがありたす 。それぞれの詳现に぀いおは、 ドキュメントを参照しおください。


myTarAuth関数は、rmytargetのMyTarget APIでの承認を目的ずしおいたす。デフォルトでは、 承認コヌド付䞎承認スキヌムを䜿甚したす。これにより、個人的にアクセスするこずなくMyTarget APIを操䜜できたす。 ぀たり 私はすでにアプリケヌションを登録しおおり、MyTarget APIサポヌトによっお承認されおおり、あなたはあなたに代わっおアカりントを操䜜するためのアクセス暩を䞎えたす。


承認コヌドの付䞎は2段階の承認スキヌムであり、その意味はryandexdirectパッケヌゞのyadirAuth関数によっお実装されるものず䌌おいたす。


次のように機胜したす。



この堎合、確認コヌドは取埗パラメヌタヌであり、Google Analyticsレポヌトに蚘録されたす。



しかし、泚意深く芋るず、コヌドパラメヌタヌコヌドの取埗に加えお、URLにはもう1぀のパラメヌタヌstateが含たれおいたす。 これは文字列であり、rmytargetパッケヌゞ自䜓によっお生成され、関数の開始盎埌にブラりザヌに送信されるトヌクンです。このパラメヌタヌは䞀意であり、承認確認コヌドが添付されたす。 確認コヌドず状態トヌクンの䞡方をむンタヌセプトしおも、この組み合わせを䜿甚するこずはできたせん。 たず、状態トヌクンを入力する堎所がありたせん。既に蚘述したように、それは䞀意であり、入力する堎所があったずしおも、再床送信するこずはできたせん。 したがっお、この認可スキヌムは完党に安党です。


しかし、すべお同じ堎合、このオプションは䟝然ずしお疑わしいず思われるため、rmytargetずmyTarAuth関数を䜿甚するず、残りの2぀の認蚌スキヌムを䜿甚できたす。



この堎合、MyTarget APIに個別にアクセスする必芁がありたす。珟時点では法人のみが取埗でき、手動で発行されたす。フィヌドバックフォヌムを䜿甚するために必芁なアクセスを芁求するには、すべおの詳现をこちらで確認できたす。


したがっお、MyTarget APIを䜿甚するためにアプリケヌションを登録するこずができた堎合、 myTarAuth関数を䜿甚しお䞊蚘の2぀のスキヌムのいずれかを䜿甚しお簡単に認蚌できたす。



クラむアント資栌情報付䞎承認のサンプルコヌド
 myTargetAuth <- myTarAuth(code_grant = FALSE, grant_type = "client_credentials", client_id = "XXXXXXXXXX", client_secret = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx") 

認可スキヌムの代理店クラむアント資栌情報付䞎のサンプルコヌド
 myTargetAuth <- myTarAuth(code_grant = FALSE, grant_type = "agency_client_credentials", client_id = "XXXXXXXXXX", client_secret = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", agency_client_name = "xxxxxxxxx@agency_client") 

このアプロヌチを䜿甚する堎合、認蚌はrmytargetパッケヌゞサむトずの察話なしで枡されたす。


おわりに


今日、10,000を超えるパッケヌゞがメむンリポゞトリCRANで公開され、GitHubで80,000を超えるパッケヌゞが公開されおいるため、ここでツアヌを終了したす。結論ずしお、それらの䜿甚の安党性に぀いおもう少し蚀いたいず思いたす。


たず、CRANに必芁なパッケヌゞがあるかどうかに泚意しおください。これはR蚀語の公匏リポゞトリであるため、パッケヌゞは、そこに公開される前に、このリポゞトリの専門家チヌムによるかなり厳栌なモデレヌションの察象ずなりたす。 そしお、 CRANポリシヌに完党に準拠するたで、パッケヌゞはそこに公開されたせん。 したがっお、パッケヌゞがCRANに存圚する堎合、その䜿甚が安党であるこずを確認できたす。


さらに、R蚀語のすべおのパッケヌゞのコヌドが開いおいるこずに泚意しおください。起動する前に、その関数のコヌドをい぀でもプレビュヌできたす。


たた、このパッケヌゞのアプリケヌションに関する蚘事を芋぀けおみおください。Rナヌザヌは情報を共有するこずを望んでおり、倚かれ少なかれ人気のあるパッケヌゞを䜿甚するケヌスを芋぀けるでしょう。 圌らがパッケヌゞに぀いお曞いおいる堎合、それは圌らがそれを䜿甚しおいるこずを意味し、明らかに誰もそれに関しお問題を抱えおいなかった。


たた、パッケヌゞの䜜成者を確認したす。これを行うには2぀の方法がありたす。


  1. パッケヌゞをむンストヌルした埌、 utils::packageDescription("_")$Authorコマンドを実行したす
  2. パッケヌゞ゜ヌスのDESCRIPTIONファむルを衚瀺したす。

広告アカりントや広告資料ぞのアクセスのトヌクンを取埗するために、少しでも公開されおいる人が評刀を危険にさらす可胜性が䜎い堎合は、䞖界䞭のネットワヌクで著者に関する情報を芋぀けおください。 倚くの堎合、評刀は疑わしい方法で受け取ったお金よりも高䟡です。


GitHubからパッケヌゞをむンストヌルし、ブランチからではなく、䜜者のリポゞトリからむンストヌルする堎合、原則ずしお、䞀般的なリポゞトリにはそのようなブランチが倚数ありたす。


Ryandexdirectブランチ


実際、ブランチはパッケヌゞの䜜成者によっお曎新されないため、最新バヌゞョンを受け取るこずはできたせん。 さらに、ブランチを䜜成したGitHubナヌザヌは、そのような倉曎を信頌するかどうかにかかわらず、コヌド自䜓に倉曎を加えるこずができたす。


GitHubのペヌゞでブランチが䜜成されたリポゞトリを確認できたす。



どんな状況でもトヌクンを誰かに転送しないでください。コヌドの䟋を瀺す必芁がある堎合でも、トヌクンを指定せずに、アカりントからパスワヌドを保存するのず同じ方法でトヌクンを保存しおください。


ほずんどの堎合、Rパッケヌゞの䜿甚は完党に安党です。この蚘事でこれを玍埗させ、最も人気のある広告プラットフォヌムのAPIでの承認プロセスがどのように機胜するかに぀いお説明したす。


頑匵っお、泚意しおください。しかし、偏執症に屈しないでください。



Source: https://habr.com/ru/post/J430888/


All Articles