أمن برامج الويب: البرمجة عبر الموقع XSS

واحدة من أشهر أنواع الثغرات التي على الويب والتي لا تهتم لها الكثير من المواقع العربية هي ثغرة البرمجة عبر الموقع أو Cross-Site Scripting (وتختصر عادة إلى XSS)، وقد سميت بذلك لأن فكرتها هي أنك تستخدم الموقع كوسيط بينك وبين الضحية بحيث تضع شفرة برمجية (Script وتقريبا دائما يكون بلغة JavaScript) على الموقع وتجبر الضحية على تشغيل هذا السكريبت عند زيارته للموقع دون أن يشعر، ومن أبرز أمثلتها برامج المنتديات العامة التي تسمح لأي عضو باستخدام لغة HTML في المواضيع والردود التي يكتبها.

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

قراءة بقية هذا الموضوع »

بنية المعلومات في قواعد البيانات العلائقية

من المعروف بأن طريقة تخزين البيانات في قواعد البيانات العلائقية هي أن تكون البيانات مخزنة في صورة جداول مكونة من عدة سجلات (صفوف الجداول) كل سجل منها يحتوي على عدة حقول (أعمدة الجداول)، مثال على ذلك الجدول التالي:

الاسم رقم الهاتف
مدحت 223341
غلام 244211
جون 299113

ففي المثال السابق هنالك ثلاثة سجلات في الجدول كل منها مكون من معلومة مخزنة في أحد الحقلين الذين يعرّفان الجدول وهما الاسم ورقم الهاتف.

قراءة بقية هذا الموضوع »

أداة لتغيير جهة تصميم الصفحة تلقائيا

قمت اليوم بوضع اللمسات الأخيرة على [أداة جديدة][أداة] تسمح لك بتحويل تصاميم CSS إلى تصاميم معكوسة، وكأنك تنظر إليها بالمرآة، والهدف منها مساعدتك في تعريب تصاميم برامج الويب الجاهزة، مثل برنامج [WordPress][wordpress]، الذي يمكنك أن تحصل له على الكثير من [التصاميم الجاهزة][تصاميم].

[أداة]: /tools/cssmirror/
[wordpress]: http://www.wordpress.org/
[تصاميم]: http://www.alexking.org/software/wordpress/theme_browser.php

الأداة موجودة على هذا العنوان: [http://www.ahmadh.com/tools/cssmirror/](/tools/cssmirror/)

وتستخدم بأن تقوم بتحميل ملف ZIP يحتوي على ملفات CSS وملفات صور التصميم، ومن المفترض أنك بمجرد ارسال الملف فإن المتصفح سيعرض لك مربعا لتنزيل ملف ZIP المعدل، حيث يكون البرنامج قد قام بعمل التغييرات اللازمة على ملفات CSS وملفات الصور ذات الامتداد (gif, png, jpeg, jpg) وتحويلها كلها إلى نسخ معكوسة.

البرنامج لا يزال في مراحلة الابتدائية ويعاني من عدة مشاكل، أهمها أنه يقوم بتغييرات جذرية في ملف CSS من بينها ازالة كافة التعليقات (comments) وهذا الأمر يجب أن لا يؤثر في أكثر التصاميم، لكنه يؤثر بالذات على تصاميم WordPress التي تعتمد على هذه التعليقات في ملف style.css للحصول على معلومات التصميم، وستحتاج لاعادة وضع التعليق من ملف style.css الأصلي في بداية ملف style.css المعدل.

إذا كانت لديكم أية ملاحظات على البرنامج فيمكنكم كتابتها [كتعليقات على هذا الموضوع][تعليقات].

[تعليقات]: http://www.ahmadh.com/weblog/2005/06/07/cssmirror-released/#comments

أريد أن أعرف رأيكم والتحسينات التي تحبون ادخالها على الأداة لجعلها تعمل بشكل أفضل لاحتياجاتكم.

كيف تلتقط صورا اجتماعية جميلة؟

قال لي أحدهم مرة معلقا على كثرة التقاطي للصور في احدى عطل نهاية الأسبوع العائلية: أنا لا أحب أن أصوّر، أتعرف لماذا؟ لأنني إذا توليت مهمة التصوير فإنني لن أظهر في الصور!

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

لكن مع اصراري على تعلم هذه الهواية ومحاولاتي المستمرة لتحسين أدائي، استطعت أن أكوّن موقفا مختلفا تماما تجاه هذا الأمر، فقد يكون شعورا سيئا أن ترى كل هذه الصور، وكل من كان حاضرا قد ظهر في مكان أو مكانين أو حدث أو حدثين من الأحداث التي مرت على وأنت لم تظهر في أي منها، لكن سرعان ما ستكتشف حقيقة جميلة جدا، وهي أنك كنت حاضرا في كل واحدة من تلك اللحظات الجميلة.

حتى وان لم تكون صورتك قد التقطت بواسطة الكاميرا، لكن مجرد وجود الصورة دليل على وجودك في ذلك المكان، لأنك أنت الذي التقطها، وبالتالي تكون أنت أكثر من ظهر في الصور!

بالإضافة إلى ذلك، فإن المصور الجيد يترك بصمته على الصور التي التقطها، فيتجلى حضوره في جمال الصورة وجودتها، وبمناسبة الحديث عن جمال الصور، كتبت هذه الملاحظات والنصائح التي جمعتها من هنا وهناك.

مهما كان نوع الكاميرا التي تستخدمها، ومهما كانت خبرتك التقنية في استخدامها، فإن هنالك أمورا يجب أن تضعها عين الاعتبار عندما تلتقط الصور، وسأركز هنا على الأمور المتعلقة أكثر بالتصوير الاجتماعي أو تصوير الناس.

قراءة بقية هذا الموضوع »

عهد جديد لأنظمة قواعد البيانات في بيئة ويندوز

أنا أعتقد بأننا اقتربنا من عهد جديد فيما يخص أنظمة مفتوحة المصدر التي تعمل على Windows، وذلك بسبب تطوران مهمان حدثا خلال الفترة القصيرة الماضية.

التطور الأول يخص نظام قواعد البيانات المفتوح المصدر PostgreSQL الذي لطالما عرف باستقراره ومزاياه الواسعة، وكان دائما يسمى بالبديل المجاني لأوراكل، لكنه كان يفتقر إلى دعم ذاتي لبيئة ويندوز، فلم يكن يعمل على أنظمة ويندوز الا باستخدام برامج وسيطة جعلته يعاني من الكثير من المشاكل في هذه البيئة، لذا فإن استخدامه كان محصورا على أنظمة Unix، إلا أنا هذا الأمر تغير مع الاصدارة الثامنة من النظام التي أتت لأول مرة مع دعم ذاتي لبيئة ويندوز، وأصبح تركيبه على ويندوز واستخدامه أمرا في غاية السهولة.

أما التطور الثاني فهو يخص نظام قواعد البيانات المفتوح المصدر الآخر MySQL، والذي عرف مقابل نظام PostgreSQL بالسهولة في استخدامه وسرعته الفائقة في العمليات البسيطة التي يبرع بها، لذا فإنه انتشر بشكل واسع وصار مع لغة البرمجة PHP التوليفة الأكثر استخداما على الإنترنت لتشغيل مواقع الويب التفاعلية، وهو يدعم بيئة ويندوز بشكل ممتاز منذ عدة سنوات، ولكن هذا النظام كان يفتقر إلى دعم جيد للكثير من مزايا أنظمة قواعد البيانات العلائقية مثل المفاتيح الأجنبية (Foreign Keys) والاستعلامات المبيته (Sub-Queries) والتعاملات (Transactions)، لكن الاصدارة الخامسة (التجريبية حاليا) تأتي الآن مع دعم لكل هذه المزايا وغيرها.

النتيجة هي أن هنالك الآن نظامات متطوران مفتوحان المصدر ومجانيان تماما لقواعد البيانات العلائقية (مزودات SQL) يعملان على نظام التشغيل Windows، وهذا الأمر يجب أن يهدد بالدرجة الأولى برنامج قواعد البيانات الضعيف Microsoft Access الذي يعتبر نكتة مقابل هذه الأنظمة المتقدمة التي تعمل بنظام المزود والزبون (Client/Server)، خاصة في بيئات الشبكات، كما أنها تنافس أنظمة Microsoft وOracle المتقدمة بتوفيرها لكافة المزايا التي قد تحتاجها الشركات والمؤسسات في إدارة بياناتها وبدون أي مقابل، كما أنها أسهل بكثير من ناحية التعلم والاستخدام، لذا فإنه توفر الكثير من الجهد والمال.

« المواضيع التالية |