النزاهة والأصالة
-
21-09-2019 - |
سؤال
آسف لمواصلة طرح العديد من الأسئلة ، لكن يبدو أنكم دائمًا لطيفون ومفيدون ...
أحتاج إلى القيام ببعض التطبيقات التي تستورد البيانات من ملف. على سبيل المثال ، يقوم المستخدم بتحديد ملف واحد ويقوم التطبيق باستيراد بعض البيانات إلى قاعدة البيانات.
لكنني كنت أفكر ، وهذا النوع من التطبيق يؤدي إلى مشكلة من النزاهة وأصالة الملفات. إذا قام المستخدم بتغيير الملف ، فلا يُسمح للتطبيق باستخدام تلك المعلومات. وإذا لم يكن ملف واحد من مصدر معروف جيدًا ، فلن يتمكن التطبيق من استخدام هذا الملف.
كيف أفعل هذا النوع من الأشياء؟
ملاحظة: أنا أستخدم C#.NET
المحلول
يتم توفير المصادقة والنزاهة من خلال التوقيعات الرقمية.
اتبع نصيحة Driis إذا كنت تتحكم في تنسيق الملف.
بالتناوب ، إذا كان الملف XML ، فاستخدم توقيع XML.
باستخدام C#/. Net:
نصائح أخرى
إذا كنت تستطيع التحكم في تنسيق الملف المصدر ، فيمكنك تضمين توقيع رقمي. إذا قمت ببناء التوقيع على تجزئة محتويات الملف ، فيمكنك التأكد من أن الملف يأتي من مصدر موثوق به ، ولم يتم العبث به.
يعتمد ذلك على مدى قوتك في هذه الحماية.
على سبيل المثال ، يمكنك الحصول على ملف XML (لقابلية القراءة البشرية) والذي يحتوي على عقدة تجزئة في مكان يحتوي على تجزئة الملف الأصلي (+ملح). يمكن تحديث ذلك بواسطة البرنامج ، ولكن يمكن للمستخدم أن يواجه وقتًا أكثر صعوبة في معرفة معنى هذا المفتاح. عندما يفتح البرنامج الملف ، فإنه يحسب التجزئة ويتحقق مما إذا كان هو نفسه الذي كتب في الملف.
يمكنك حتى اتخاذ خطوة واحدة إلى الأمام واستخدام التوقيعات الرقمية ، ولكن هذا أكثر تعقيدًا.