Tags:
Node Thumbnail

ความผิดพลาดของนักพัฒนาที่อาจจะนำกุญแจ API ที่สำคัญๆ ไปอัพโหลดขึ้น GitHub หรือปล่อยหลุดไปตามช่องทางอื่นๆ เกิดขึ้นได้เรื่อยๆ ล่าสุดบริษัท Fallible สำรวจแอปแอนดรอยด์ถึง 16,000 รายการว่ามีความลับใดฝังอยู่ในโค้ดหรือไม่ และพบว่ามีกุญแจ API สำคัญๆ อยู่ถึง 304 รายการ

รายการกุญแจ API ที่หลุดมากับโค้ดแอนดรอยด์ ได้แก่ Twitter, Urban Airship, Flickr, Dropbox, Instagram, Uber, ไปจนถึง AWS ที่อาจจะทำให้นักพัฒนาหมดตัวด้วยการเปิดเครื่องมาใช้งานจำนวนมาก

จำนวนแอปที่มีกุญแจ API เหล่านี้ติดมาด้วยยังคงมีจำนวนมาก คงต้องเตือนกันว่าควรนำกุญแจเหล่านี้ออกจากโค้ดก่อนคอมไพล์ขึ้น Google Play หรือออกแบบสถาปัตยกรรมให้ไม่ต้องติดกุญแจเหล่านี้ไปกับตัวแอป

ที่มา - The Register, Hackernoon

Get latest news from Blognone

Comments

By: tekkasit
ContributorAndroidWindowsIn Love
on 17 January 2017 - 20:13 #965166
tekkasit's picture

AWS ขอแค่ให้สิทธิ์ระดับใช้งาน แต่ไม่ให้สิทธิ์ระดับ administrator ที่จะสร้างหรือลบบริการต่างๆ ได้ก็น่าจะเพียงพอแล้วรึเปล่า?

By: karyonix on 17 January 2017 - 21:00 #965183 Reply to:965166

ถ้าเข้าถึงฐานข้อมูลของแอพได้ ก็อาจจะดูหรือแก้ไขข้อมูลของผู้ใช้คนอื่นที่ใช้แอพเดียวกันเก็บข้อมูลในฐานข้อมูลเดียวกันได้

By: tekkasit
ContributorAndroidWindowsIn Love
on 18 January 2017 - 06:50 #965223 Reply to:965183
tekkasit's picture

อันนี้สงสัยจริงๆ ว่ามันควรจะให้ mobile client เข้าถึง data store กลางตรงๆ หรือ?

กรณีนี้ผมสงสัยว่า ถ้าไม่ให้ใส่ username/secret key เค้าในแอพ แล้วที่ดีจริงๆ ต้องควรต้องออกแบบอย่างไร

By: mementototem
ContributorJusci's WriterAndroidWindows
on 18 January 2017 - 09:25 #965237 Reply to:965223
mementototem's picture

นั่นสิครับ จริงอยู่ที่ห้ามเอา secret key ต่าง ๆ ไปใส่ใน VCS แต่ถ้าไม่ให้พ่วง secret key ไปในแอพด้วย จะทำอย่างไร? การจำกัดสิทธิ์ต่าง ๆ ก็ขึ้นอยู่กับผู้ออกแบบ API ถ้าเขาไม่ทำให้จะมาโทษนักพัฒนาที่เรียกใช้ก็ดูไม่ถูกต้องนัก


Jusci - Google Plus - Twitter

By: lew
FounderJusci's WriterMEconomicsAndroid
on 18 January 2017 - 11:29 #965255 Reply to:965223
lew's picture

สร้าง API ของตัวเองครับ แล้วส่งต่อไปยัง API กลาง

Mobile App (API Key #1) -> App Server (API Key #Slack) -> Slack

กรณีในข่าวนี่คือ

Mobile App (API Key #Slack) -> Slack

มันก็เวิร์คเหมือนกัน แต่ใครที่ไหนดูด Key ไปใช้ก็ได้


lewcpe.com, @wasonliw

By: tekkasit
ContributorAndroidWindowsIn Love
on 18 January 2017 - 21:27 #965368 Reply to:965255
tekkasit's picture

เพื่อจะได้กันไม่ให้รู้ข้อมูลคนอื่นได้ ทุก method ก็ต้องใส่ device-id (แบบ random ยาวๆ) พ่วงไปเสมอ จะได้กันไม่ให้คนนอกล่วงรู้ device-id คนอื่น

โอเคครับ เห็นภาพ