سؤال

لقد استخدمت HTML لتنقية للقضاء على أي أشياء مشبوهة تأتي من محرر WYSIWYG المواجه العام. يتم عرض HTML الوارد أيضا في الجزء العام من الموقع.

لقد سمحت بالارتباطات، وأرتب أيضا تلقائيا عناوين URL في نص عادي (باستخدام جهاز التنقية).

هل هناك طريقة للسماح بالروابط الخارجية، ولكن حظر الروابط لنفس المجال؟ على سبيل المثال مجالي هو www.example.com

http://www.google.com. سيتم ربطها.

http://www.example.com/logout/ لن تكون مرتبطة.

أنا أبحث في تقليل أي تدخل من المستخدمين الضارين. يجب أن أجعل تسجيل الخروج الخاص بي إجراء نموذج مع وجود زوج مفتاح / قيمة ما بعد إيقاف هذا من الحدوث؟

شكرا

هل كانت مفيدة؟

المحلول

يجب أن يكون نموذج تسجيل الدخول / الخروج الخاص بك دائما بعد فقط.

لا تقلق بشأن قيمة التحقق، ولكن هذه مشكلة أمنية مهمة للغاية - أي معاملات تتغير حالة خادم الويب يجب أن تكون طلبات نشرها. يجب ألا تسمح أبدا http://example.com/oBject؟actelete., ، أو أي متغير منه. يشجع PHP الممارسة السيئة في هذا الشأن، ولكن يجب عليك دائما استخدام واحد أو آخر، ولا تسمح أبدا.

إذا كان بإمكان المستخدمين كتابة نماذج في محرر WYSIWYG الخاص بك، فقد حصلت على مشاكل أكبر بكثير من هذا.

للإجابة على سؤالك الأصلي، لتعطيل الروابط الداخلية، استخدم URI.HostBlacklist وتأكد من تعيين URI.MakeAbsolute:

http://htmlpurifier.org/live/configdoc/plain.html#uri.hostblacklist.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top