(غیر) رسمي Habr غوښتنلیک - HabrApp 2.0: لاسرسی ترلاسه کول

یو تیاره او لا دمخه ډیر ستړی کوونکی ماښام ، زه ، پاڼی ته ځم رسمي د هابر غوښتنلیک، یو ځل بیا ما خپلې ګوتې ودرولې، د هر غیر کار کولو ځانګړتیا لپاره یو. دلته، د مثال په توګه، تاسو نشئ کولی تبصره وکړئ، دلته تاسو د رایې ورکولو حق رد کړی، او په عموم کې، ولې فورمولونه په سکرین کې نه لیدل کیږي؟

(غیر) رسمي Habr غوښتنلیک - HabrApp 2.0: لاسرسی ترلاسه کول
دا پریکړه وشوه: موږ یو څه راحته، خوندور، خپل یو څه ته اړتیا لرو. د حبر لپاره ستاسو د خپل غوښتنلیک په اړه څه؟
اجازه راکړئ تاسو ته د وضعیت پوهیدو لپاره یو څو سکرین شاټونه درکړم.

(غیر) رسمي Habr غوښتنلیک - HabrApp 2.0: لاسرسی ترلاسه کولداسې یو څه ښکاري دا - د. habr.com غوښتنلیک

د "ناامنیو" لیست

  • تاسو نشئ کولی د یوې خپرونې درجه بندي کړئ چې درجه یې له 0 څخه توپیر لري
  • دا تل ممکنه نه ده چې تبصره ولیکئ
  • رایې کار نه کوي
  • فورمولونه په تیاره موضوع کې نه لیدل کیږي (تور پر تور)
  • ټول بک مارکونه شتون نلري

هو، ایپ د تیر کال د اګست راهیسې تازه شوی نه دی، مګر دا لاهم خراب دی. په عموم کې، دا باید تنظیم شي.

لومړۍ برخه. د لاسرسي په لټه کې.

د ګوګل چټک پوښتنه "habrahabr API" دا وايي چې دا دمخه خورا زوړ دی ذخیره په ګیتوب کې، له هغه راهیسې تازه شوی نه دی د نومبر 21 2016او دا، د یوې شیبې لپاره، دوه نیم کاله.

د دې حقیقت په پام کې نیولو سره چې دا PHP دی، لاندې سکرول او ولولئ:

د غوښتنلیک ID ترلاسه کول

ګټه پورته کول دا فورمه په Habrahabr کې، تاسو اړتیا لرئ په لنډه توګه د نوي غوښتنلیک جوهر او هغه هدف تشریح کړئ چې د دې لپاره API ته اړتیا لري.

هیڅ پوښتنه نشته، که تاسو لاسرسی ته اړتیا لرئ، نو تاسو ورته اړتیا لرئ. موږ یو لیک لیکو (لنډیز):

یو لیک

د PWA پر بنسټ د حبر لپاره د غوښتنلیک جوړولو لیوالتیا شتون لري. د دې څو لاملونه شتون لري. 

لومړی او خورا څرګند: د Android غوښتنلیک زما شخصي اړتیاوې نه پوره کوي.

دوهم: د هر ډول شیانو په اړه کافي اصلي خبرتیاوې شتون نلري چې معمولا د بریښنالیک له لارې راځي (د مثال په توګه تبصرې).

دریم: شخصي هضمونه (د لید په توګه) د خلکو/مرکزونو په اړه چې زما سره علاقه لري، زما د ګټو په پام کې نیولو سره.

ځواب، البته، ډیر خوندور نه و، مګر لږترلږه صادقانه:

له بده مرغه، زموږ API ته لاسرسی اوس مهال شتون نلري. موږ پلان لرو چې د API نهایی کولو پای ته رسیدو وروسته د لاسرسي چمتو کول بیا پیل کړو ، مګر موږ لاهم دقیق نیټه نلرو ، ځکه چې موږ اوس د نورو لومړیتوبونو په حل کولو بوخت یو.

"ښه، کومه ستونزه نشته! موږ به یو څه راوړو!" - ما خپل ځان ته وویل او په لټه کې شوم.

دوهمه برخه. ژورې کیندنې.

د منطق پراساس، که غوښتنلیک روان وي، نو دا API ته لاسرسی لري، او دا په غوښتنلیک کې سخته ده. راځئ چې تحلیل وکړو.

له هغه ځایه چې موږ د ترافیک سره معامله کوو ، ویرشارک زموږ انتخاب دی. د ځینو دردونو پرته، د ډیسټاپ کمپیوټر له لارې د انټرنیټ سره د تلیفون سره نښلول، موږ اپلیکیشن خلاصوو او غوښتنو ته یې ګورو:

(غیر) رسمي Habr غوښتنلیک - HabrApp 2.0: لاسرسی ترلاسه کول
دا روښانه ده چې هیڅ شی روښانه نه دی

هو، هرڅه کوډ شوي دي، مګر زه نه غواړم د کریپټوګرافي سره ګډوډ کړم. بیا تاسو اړتیا لرئ د غوښتنلیک دننه وګورئ.

تخریب شوی .apk، راځئ چې په لټه پیل وکړو. کوم API ته اړتیا لري؟ سمه ده د پای ټکی، هغه ځای چیرې چې ټولې غوښتنې ځي. دا شاید http(s) وي، راځئ چې د "https://" موندلو هڅه وکړو:

په دوتنه کې AuthLinkManager.smali موږ پیدا کوو

.field OAUTH:Ljava/lang/String; = "https://habrahabr.ru/auth/o/%s/"
.field OAUTH_PARAMS:Ljava/lang/String; = "?client_id=%s&response_type=token&redirect_uri=%s"
.field OAUTH_REDIRECT_URL:Ljava/lang/String; = "http://cleverpumpkin.ru"

دا د Android مجازی ماشین لپاره کوډ دی (دالویک VM)، د انسانانو لپاره د پوهیدو وړ ندی، مګر بیا هم خورا معلوماتي. دا درې ثابت، د دوی د منځپانګې او نوم، او همدارنګه د GitHub ذخیره، د میتود په کارولو سره د لاسرسي نښه غوښتنه کولو لپاره کارول کیږي. GET.

راځئ نور وګورو. هغه فایل چې په لټون کې راتلونکی راځي NetworkModule.smali:

const-string v0, "https://habr.com/api/v1/"

او دلته ستاسو د غوښتنو سره د تګ ځای دی!

د دې لپاره چې پخپله لیکل شوي پیرودونکي په سمه توګه کار وکړي، یوازې یو شی پاتې دی چې معلومه کړي - client_id، کوم چې ډیری احتمال د غوښتنلیک لپاره یو ځانګړی پیژندونکی دی.

په هرصورت، د سرچینې کوډ کې د دې متن لټون کول د اړونده معلوماتو موندلو لامل نه شو ...

مګر ناڅاپه په یوه فایل کې زما سترګې ځینې په زړه پوري کرښې ونیولې:

const-string p8, "log-tag"
invoke-static {p8, p2}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I

دا، لکه څنګه چې تاسو پوهیږئ، د ننوتلو ننوتل دي. مګر څه ثبتول؟

دریمه برخه. دا لاګونه دي!

مونږ تری ګټه پورته کوو adb logcat د غوښتنلیک لاګونو لیدلو لپاره.

(غیر) رسمي Habr غوښتنلیک - HabrApp 2.0: لاسرسی ترلاسه کول

په غیر متوقع ډول، لاګونه د تمې په پرتله حتی ډیر مفصل وو.

دلته موږ نه یوازې هغه څه لرو چې موږ ورته اړتیا لرو client_idخو نښه کارن/اپلیکیشن، او ننوتل и شفر په ساده متن کې!

ځینې ​​د سازش تیورۍپه لاګونو کې یوازې د ننوتلو او پټنوم شتون هیڅ شی ته زیان نه رسوي، ځکه چې دا لاګونه یوازې د روټ حقونو یا د اړیکې له لارې لوستل کیدی شي. adb. مګر د دې حقیقت له امله چې د هابر لوستلو خلکو کې د Android پراختیا کونکي شتون لري چې ممکن د ډیبګ کولو وړ وي ، دا یوه ستونزه رامینځته کیږي.

په دې حالت کې، په هوایی ډګر کې "وړیا چارج" ممکن د حساب غلا پایله ولري، مګر څوک ورته اړتیا لري؟
د دې لاګونو څخه موږ کولی شو استخراج کړو:

  • client_id и apikeyد لاسرسي لپاره اړین دي API;
  • د کارونکي اجازه URL (عجیب ، مګر د دې میتود په اړه په ذخیره کې هیڅ شتون نلري ، شاید دا نه وي چمتو شوی؟)

همداسې وشول. د دې کوچنۍ څیړنې پراساس، کار دمخه د یوې کوچنۍ پروژې په اړه روان دی - زموږ د ګرځنده غوښتنلیک پلي کول. زه له هغو کسانو څخه کوم چې غواړي د پیغام په لیکلو کې مرسته وکړي، او هرڅوک - رایه ورکړي (ځکه زه غواړم پوه شم چې ایا څوک دې ته اړتیا لري).

ستاسو د پاملرنې مننه!

یوازې راجستر شوي کاروونکي کولی شي په سروې کې برخه واخلي. ننوزئمهرباني وکړئ

ایا تاسو د Habr موبایل اپلیکیشن کاروئ؟

  • هو، زه یې کاروم، زه له دې څخه خوښ یم

  • هو ، زه یې کاروم ، غوښتنلیک د تکلیف لامل کیږي

  • نه، زه په خپل تلیفون کې د ویب نسخه کاروم

  • نه، زه د خپل کمپیوټر څخه Habr کاروم

357 کاروونکو رایه ورکړه. 30 کاروونکي منع شوي.

سرچینه: www.habr.com

Add a comment