ความผิดพลาดของนักพัฒนาที่อาจจะนำกุญแจ API ที่สำคัญๆ ไปอัพโหลดขึ้น GitHub หรือปล่อยหลุดไปตามช่องทางอื่นๆ เกิดขึ้นได้เรื่อยๆ ล่าสุดบริษัท Fallible สำรวจแอปแอนดรอยด์ถึง 16,000 รายการว่ามีความลับใดฝังอยู่ในโค้ดหรือไม่ และพบว่ามีกุญแจ API สำคัญๆ อยู่ถึง 304 รายการ
รายการกุญแจ API ที่หลุดมากับโค้ดแอนดรอยด์ ได้แก่ Twitter, Urban Airship, Flickr, Dropbox, Instagram, Uber, ไปจนถึง AWS ที่อาจจะทำให้นักพัฒนาหมดตัวด้วยการเปิดเครื่องมาใช้งานจำนวนมาก
จำนวนแอปที่มีกุญแจ API เหล่านี้ติดมาด้วยยังคงมีจำนวนมาก คงต้องเตือนกันว่าควรนำกุญแจเหล่านี้ออกจากโค้ดก่อนคอมไพล์ขึ้น Google Play หรือออกแบบสถาปัตยกรรมให้ไม่ต้องติดกุญแจเหล่านี้ไปกับตัวแอป
ที่มา - The Register, Hackernoon
Comments
AWS ขอแค่ให้สิทธิ์ระดับใช้งาน แต่ไม่ให้สิทธิ์ระดับ administrator ที่จะสร้างหรือลบบริการต่างๆ ได้ก็น่าจะเพียงพอแล้วรึเปล่า?
ถ้าเข้าถึงฐานข้อมูลของแอพได้ ก็อาจจะดูหรือแก้ไขข้อมูลของผู้ใช้คนอื่นที่ใช้แอพเดียวกันเก็บข้อมูลในฐานข้อมูลเดียวกันได้
อันนี้สงสัยจริงๆ ว่ามันควรจะให้ mobile client เข้าถึง data store กลางตรงๆ หรือ?
กรณีนี้ผมสงสัยว่า ถ้าไม่ให้ใส่ username/secret key เค้าในแอพ แล้วที่ดีจริงๆ ต้องควรต้องออกแบบอย่างไร
นั่นสิครับ จริงอยู่ที่ห้ามเอา secret key ต่าง ๆ ไปใส่ใน VCS แต่ถ้าไม่ให้พ่วง secret key ไปในแอพด้วย จะทำอย่างไร? การจำกัดสิทธิ์ต่าง ๆ ก็ขึ้นอยู่กับผู้ออกแบบ API ถ้าเขาไม่ทำให้จะมาโทษนักพัฒนาที่เรียกใช้ก็ดูไม่ถูกต้องนัก
Jusci - Google Plus - Twitter
สร้าง API ของตัวเองครับ แล้วส่งต่อไปยัง API กลาง
Mobile App (API Key #1) -> App Server (API Key #Slack) -> Slack
กรณีในข่าวนี่คือ
Mobile App (API Key #Slack) -> Slack
มันก็เวิร์คเหมือนกัน แต่ใครที่ไหนดูด Key ไปใช้ก็ได้
lewcpe.com, @wasonliw
เพื่อจะได้กันไม่ให้รู้ข้อมูลคนอื่นได้ ทุก method ก็ต้องใส่ device-id (แบบ random ยาวๆ) พ่วงไปเสมอ จะได้กันไม่ให้คนนอกล่วงรู้ device-id คนอื่น
โอเคครับ เห็นภาพ