وظيفة ستركبي أو متغير هي واحدة من الأكثر شيوعا في ج و ج programming البرمجة. يتم استخدامه لنسخ محتويات سطر واحد إلى آخر. ومع ذلك ، فإن استخدام ستركبي يمكن أن يكون غير آمن ويؤدي إلى مشاكل مختلفة.
المشكلة الرئيسية مع استخدام ستركبي هو أنه لا يوفر أي وسيلة للتحقق من حجم المخزن المؤقت حيث يتم نسخ السلسلة. إذا كان حجم المخزن المؤقت الذي يتم نسخ السلسلة فيه أصغر من حجم السلسلة نفسها ، فقد يؤدي ذلك إلى تجاوز سعة المخزن المؤقت ونقاط الضعف للهجمات.
وبالإضافة إلى ذلك ، باستخدام ستركبي يمكن أن يؤدي إلى معالجة غير صحيحة من الأحرف والأحرف الخاصة. إذا كانت السلسلة التي يتم نسخها تحتوي على أحرف لها معنى خاص في سياق البرنامج ، فقد تكون النتيجة غير متوقعة وتؤدي إلى أخطاء في البرنامج.
فمن المستحسن استخدام بدائل آمنة ل ستركبي ، مثل سترنكبي أو السلسلة.مكتبة ح ، والتي تسمح لك بتحديد الحد الأقصى لحجم المخزن المؤقت لنسخ سلسلة. هذا يقلل من خطر تجاوز سعة المخزن المؤقت ويزيد من أمان البرنامج.
بدلا من استخدام ستركبي ، فمن المستحسن استخدام الوظائف والمتغيرات التي توفر الشيكات حجم المخزن المؤقت والتعامل مع الأحرف الخاصة بشكل صحيح. هذا سوف تجنب العديد من المشاكل المرتبطة باستخدام ستركبي وتحسين أمن رمز البرنامج.
- التهديدات المحتملة عند استخدام وظيفة ستركبي
- المخاطر ونقاط الضعف المحتملة
- توصيات عملية للاستخدام الآمن
التهديدات المحتملة عند استخدام وظيفة ستركبي
وظيفة ستركبي هي واحدة من أكثر الوظائف شيوعا في لغة البرمجة سي. يتم استخدامه لنسخ محتويات سطر واحد إلى آخر. ومع ذلك ، على الرغم من شعبيتها ، يمكن أن تسبب مشاكل أمنية خطيرة.
واحدة من التهديدات الرئيسية المرتبطة باستخدام وظيفة ستركبي هو إمكانية تجاوز سعة المخزن المؤقت. والحقيقة هي أن الوظيفة لا تتحقق من بعد المخزن المؤقت الذي يتم نسخ السلسلة فيه. إذا تبين أن سلسلة المصدر أطول من حجم المخزن المؤقت المتوقع ، فقد تتم كتابة البيانات خارج الذاكرة المخصصة ، مما قد يؤدي إلى الكتابة فوق البيانات المهمة أو حتى تنفيذ تعليمات برمجية ضارة.
بالإضافة إلى ذلك ، يمكن استخدام وظيفة ستركبي من قبل المهاجمين لتنفيذ هجوم على النظام. على سبيل المثال ، إذا تجاوز المخزن المؤقت ، يمكن للمهاجمين كتابة رمز قابل للتنفيذ إلى منطقة ذاكرة مصممة لتخزين عناوين إرجاع الوظائف. هذا يسمح لهم بالحصول على السيطرة الكاملة على تنفيذ البرنامج وحقن التعليمات البرمجية الضارة الخاصة بهم.
للحماية من التهديدات المحتملة المتعلقة باستخدام وظيفة ستركبي ، فمن المستحسن استخدام بدائل آمنة مثل سترنكبي أو سترلكبي. تحتوي هذه الوظائف على معلمة تسمح لك بتحديد حجم المخزن المؤقت ، والتأكد من عدم نسخ أكثر من العدد المحدد من وحدات البايت إلى المخزن المؤقت الهدف.
من المهم أيضا التحقق بعناية من حجم السلسلة المصدر قبل النسخ للتأكد من أن المخزن المؤقت كبير بما يكفي لتخزين جميع الأحرف. إذا كان حجم السلسلة غير معروف ، يمكنك استخدام وظيفة سترنلين لتحديد حجم المخزن المؤقت الآمن.
بشكل عام ، وظيفة ستركبي مريحة وتستخدم على نطاق واسع ، ولكن يتطلب اتباع نهج دقيق والاهتمام بالأمن. استخدم بدائل آمنة وتحقق من حجم المخزن المؤقت لتجنب الثغرات الأمنية والهجمات المحتملة على النظام.
المخاطر ونقاط الضعف المحتملة
يمكن أن يؤدي استخدام وظيفة ستركبي إلى عدد من المخاطر ونقاط الضعف التي يمكن استخدامها من قبل المهاجم لمهاجمة النظام:
- تجاوز سعة المخزن المؤقت: واحدة من المخاطر الرئيسية المرتبطة ستركبي هو إمكانية تجاوز سعة المخزن المؤقت. إذا كان حجم السلسلة الهدف أكبر من حجم السلسلة المصدر ، ثم استدعاء ستركبي قد يسبب البيانات المراد كتابتها خارج منطقة الذاكرة المخصصة. هذا يفتح الطريق للاستخدام الضار لهذه الثغرة الأمنية ، وفي النهاية ، إلى تعطل البرنامج أو تنفيذ تعليمات برمجية ضارة.
- شار سرك[20] = "مرحبا ، العالم!";
- مثال:
ستركبي (ديست ، سرك) ؛ / / لا يوجد فحص الحدود هنا
وصول غير صحيح للذاكرة: يمكن أن يؤدي استخدام ستركبي بدون تحكم مناسب إلى وصول غير صحيح للذاكرة. على سبيل المثال ، إذا كانت السلسلة المصدر تحتوي على أحرف لا تؤخذ في الاعتبار عند النسخ إلى السلسلة المستهدفة (على سبيل المثال ، أحرف الهروب أو حرف فارغ) ، فقد تكون النتيجة غير متوقعة وغير متوقعة.
مثال:
شار ديست [20];
- شار سرك [10] = " مرحبا \ 0 ، العالم!";
- ستركبي(ديست، سرك); // تحدث معالجة غير صحيحة هنا ، حيث يتم نسخ "مرحبا" فقط
- بشكل عام ، يمكن أن يكون استخدام وظيفة ستركبي خطيرا ، لأنه يفتح الطريق أمام العديد من الثغرات الأمنية التي يمكن استخدامها لتنفيذ هجمات على النظام. لتجنب هذه المخاطر ، فمن المستحسن استخدام بدائل أكثر أمنا مثل سترنكبي ، ممكبي ، أو استخدام وظائف سلسلة القياسية من السلسلة.مكتبة ح.
- توصيات عملية للاستخدام الآمن
باستخدام وظيفة ستركبي أو متغير (سلاسل النسخ) يمكن أن يؤدي إلى حالات غير آمنة ، لأنه لا تحقق أحجام المخزن المؤقت أو طول السلسلة. هذا يمكن أن يؤدي إلى تجاوز سعة المخزن المؤقت ورفض الخدمة (نقاط الضعف من نوع"تجاوز سعة المخزن المؤقت") ، والهجمات على النظام والتسرب المحتمل للمعلومات السرية.