به كارگيري از WebViwe
از آنجايي كه WebView محتواي اينترنت را مصرف مينمايد كه مي تواند مشمول HTML و طراحي اپليكيشن در مشهد جاوا اسكريپت باشد،
استعمال غلط ميتواند منجر ساخت و ساز خطاها رايج امنيتي اينترنت مانند cross-site-scripting (JavaScript injection) خواهد شد.
Android مشمول يك سري سازوكار براي كاهش دامنه اين خطاها بالقوه با محصور كردن امكان WebView به دست كم تلاش ما يحتاج نرم افزار شما ميباشد.
در صورتيكه نرم افزار شما مستقيماً از جاوا اسكريپت در WebView به كارگيري نمي نمايد، () setJavaScriptEnabled را فراخواني نكنيد.
بعضا از كدهاي مثال از اين شيوه به كارگيري مي نمايند، كه ممكن ميباشد در نرم افزار مجدداً از آن به كار گيري نماييد،
بدين ترتيب در شكل عدم نياز، آن فراخواني را حذف فرمائيد.
به صورت پيش فرض، WebView جاوا اسكريپت را اعمال نمي نمايد، براين اساس قابليت و امكان اسكريپت cross-site-scripting نيست.
از addJavaScriptInterface با تمركز خاصي به كار گيري فرماييد چون به جاوا اسكريپت اذن مي دهد تا
عملياتي را كه معمولاً براي اپليكيشنهاي Android رزرو گرديده است فراخواني نمايد.
چنانچه از آن استعمال ميكنيد،() addJavaScriptInterface را صرفا در صفحه هاي وبي قرار دهيد كه مجموع ورودي هاي آن ايمن ميباشد.
در شرايطي كه اپليكيشن شما با WebView به داده هاي حساس دسترسي پيدا مي نمايد، ممكن ميباشد بخواهيد
از طريق () clearCache براي حذف فولدر هاي ذخيره گرديده محلي به كار گيري نماييد.
همينطور ميتوانيد از هدرهاي سمت سرور مانند no-cache به كارگيري نماييد تا علامت دهيد كه يك اپليكيشن نبايد محتواي خاصي را در خاطر مخفي ذخيره نمايد.
كد گذاري در اندرويد
اندرويد ضمن نگهباني از رمزگذاري بدون نقص filesystem و ارائه شبكه هاي ارتباطي امن،
طيف كلان اي از الگوريتم ها را براي حفظ از اطلاعات با به كارگيري از رمز گذاري ارائه مي نمايد.
مجموعاَ، مي بايست بدانيد كه برنامه شما از كدام ارائه دهندگان امنيتي Java Cryptography Architecture (JCA) استعمال مي نمايد.
تلاش فرماييد از بالاترين سطح طراحي چارچوب از گذشته جان دار به كار گيري نماييد كه قادر است آيتم به كارگيري شمارا پناه نمايد.
در شكل وجود، از ارائهدهندگان ارائهگرديده به وسيله Google به ترتيب معلوم گرديده به وسيله Google استعمال فرماييد.
درحالتي كه نياز به بازيابي ايمن يك فولدر از يك جاي كانال شناخته گرديده داريد، يك URI معمولي HTTPS ممكن ميباشد كافي باشد و نيازي به علم كدگذاري نداشته باشد.
درحالتي كه به يك تونل امن نياز داريد، به مكان تايپ كردن پروتكل خويش، از HttpsURLConnection يا اين كه SSLSocket استعمال فرمائيد.
در شرايطي كه از SSLSocket به كارگيري ميكنيد، دقت داشته باشيد كه تأييد اسم صاحب خانه را اعمال نمي دهد.
درصورتي كه متوجه شديد كه بايستي پروتكل خويش را طراحي فرماييد، نبايد الگوريتم هاي كدگذاري خويش را طراحي فرمائيد.
از الگوريتم هاي كد گذاري جانور، مانند AES و RSA ارائه گرديده در كلاس Cipher به كار گيري فرمائيد.
ضمن اين، شما مي بايست شايسته ترين طريق ها را دنبال نماييد:
از AES 256 بيتي براي هدف ها تجاري استعمال نمائيد. (در شرايطي كه در دسترس وجود ندارد، از AES 128 بيتي به كارگيري نماييد.)
براي رمز گذاري elliptic curve (EC) از كليد همگاني 224 يا اين كه 256 بيتي به كار گيري فرمائيد.
بدانيد چه هنگامي از شرايط هاي بلوك CBC، CTR يا اين كه GCM استعمال فرماييد.
از استعمال دوباره IV/counter در وضعيت CTR اجتناب فرمائيد. مطمئن گرديد كه از ديد كد گذاري تصادفي ميباشند.
هنگام به كارگيري از رمزگذاري، يكپارچگي را با به كارگيري از شرايط CBC يا اين كه CTR با يكي عملكردهاي پايين طراحي نماييد:
HMAC-SHA1
HMAC-SHA-256
HMAC-SHA-512
Mode GCM
از يك مولد اعداد تصادفي ايمن، SecureRandom، براي مقداردهي اول كليدهاي كد گذاري ساخت گرديده به وسيله KeyGenerator به كار گيري نمائيد.
استعمال از كليدي كه با مولد اعداد تصادفي ايمن ايجاد نميشود، توان الگوريتم را به واحد سنجش قابل توجهي ضعيف مي نمايد و ممكن ميباشد حمله ها آفلاين را قابليت و امكان پذير نمايد.
(در صورتيكه نياز به ذخيره كليد براي به كار گيري مكرر داريد، از مكانيزمي مانند KeyStore به كارگيري فرمائيد
كه مكانيزمي را براي ذخيره زمان بر برهه زماني و بازيابي كليدهاي كد گذاري مهيا مي نمايد.)
بازدید: