اذهب إلى المحتوى

لوحة المتصدرين

  1. عبدالهادي الديوري

    • نقاط

      3

    • المساهمات

      368


  2. Lujain Maaz

    Lujain Maaz

    الأعضاء


    • نقاط

      2

    • المساهمات

      344


  3. mizuguruma

    mizuguruma

    الأعضاء


    • نقاط

      1

    • المساهمات

      1


المحتوى الأكثر حصولًا على سمعة جيدة

المحتوى الأعلى تقييمًا في 02/14/16 in أجوبة

  1. ما فهمته من سؤالك أنك تريد عمل نافذة تتوضّع بشكل حر على الشاشة بحيث تظهر فوق محتوى الشاشة عند الضغط على زر. الأمر بسيط تُمثّل النافذة عنصر div، ولعملها أنشئ عنصر div وعيّن الخاصيّة position بالقيمة absolute. وذلك حتى يأخذ مكانه بشكل مستقل دون أن يؤثر أو يتأثر بباقي عناصر الصفحة. وعيّن الخاصية display بالقيمة none حتى يتم إخفاء الـ div ولا يظهر إلا عند الضغط على الزر. كذلك يجب تعيين الخاصيّة z-index: 1000 ليظهر العنصر div فوق محتوى الصفحة كما في المثال التالي: <div id="divBox" style="top: 0; left: 0; position: absolute; width: 50%; display: none; z-index: 1000; overflow-y: scroll; overflow-x: hidden; color: white;"> الآن أنشئ الزر الذي سيُظهرالنافذة عند الضغط عليه واستدعي تابع الـ JQuery -الذي سيُنفّذ عند الضغط على الزر- في التابع onclick: <input type="button" value="Show Box" onclick="showDivBox()"> في هذا التابع اكتب: function showDivBox() { $('#divBox').slideDown(); } الآن سيظهر لك الـ div عند الضغط على الزر. يمكنك إضافة أيقونة إغلاق لتتمكّن من إغلاق النافذة ولعمل ذلك اكتب الشيفرة التالية: <div id="divBox" style="top: 0; left: 0; position: absolute; width: 50%; display: none; z-index: 1000; overflow-y: scroll; overflow-x: hidden; color: white;"> <a style="cursor:pointer" onclick="closeDiv()" title="إغلاق"><i class="fa fa-close fa-2x"></i></a> </div> في السكربت: function closeDiv() { $('#divBox').slideUp(); } بالتوفيق
    1 نقطة
  2. توجد عدّة خطوات لمنع cross-site scripting(XSS) في ASP.Net. يجب أولًا أن تتأكد من تفعيل التحقّق من صحة الطلبات request validation. -افتراضيًا- تكون request validation مفعّلة في ملف Machine.config ولا يقوم التطبيق بعمل overriding لهذه الإعدادات في ملف Web.config لذا تأكد من تعيين الخاصيّة Validate Request إلى القيمة True كما في المثال التالي: <system.web> <pages buffer="true" validateRequest="true" /> </system.web> ولاختبار أن التحقّق من صحة الطلبات (request validation) مفعّل أنشئ صفحة ASP.NET تقوم بتعطيل التحقّق من صحة الطلبات عن طريق تعيين ValidateRequest="false" كما في الشيفرة التالية: <%@ Page Language="C#" ValidateRequest="false" %> <html> <script runat="server"> void btnSubmit_Click(Object sender, EventArgs e) { // If ValidateRequest is false, then 'hello' is displayed // If ValidateRequest is true, then ASP.NET returns an exception Response.Write(txtString.Text); } </script> <body> <form id="form1" runat="server"> <asp:TextBox id="txtString" runat="server" Text="<script>alert('hello');</script>" /> <asp:Button id="btnSubmit" runat="server" OnClick="btnSubmit_Click" Text="Submit" /> </form> </body> </html> عند تشغيل الصفحة ستظهر لك كلمة Hello في مربع الرسائل وذلك لأن السكربت الموجود في الـText Box قد صُيّر على أنه سكربت من جانب العميل client-side script في المتصفح الخاص بك. الآن عيّن الخاصيّة ValidateRequest="true" أو قم بإزالتها واستعرض الصفحة مجدّدًا. سيتم عرض رسالة الخطأ التالية: الخطوة الثانية راجع شيفرات ASP.Net التي توّلد خرج HTML وذلك لتحديد المواقع التي يتم فيها إرجاع خرج html والروابط url إلى العميل. Response.Write <% = الخطوة الثالثة تحديد فيما إذا كان ناتج html يحوي على معلومات إدخال inputs وذلك بتحليل تصميم الصفحة والشيفرات البرمجية لتحديد إن كان هنالك أي معاملات إدخال من ناتج html. فيما يلي قائمة تتضمن مصادر الإدخال الأكثر شيوعًا: Query strings كما في المثال التالي: Response.Write(Request.QueryString["username"]); Form fields: Response.Write(name.Text); Response.Write(Request.Form["name"]); Query Strings Response.Write(Request.QueryString["name"]); Databases and data access methods: SqlDataReader reader = cmd.ExecuteReader(); Response.Write(reader.GetString(1)); Cookie collection: Response.Write( Request.Cookies["name"].Values["name"]); Session and application variables: Response.Write(Session["name"]); Response.Write(Application["name"]); بالإضافة إلى ذلك يمكنك عمل اختبار بسيط بكتابة نص مثل "XYZ" في الحقول واختبار الناتج أو الخرج فإذا أظهر المتصفح النص "XYZ" أو شاهدت النص في مصدر الصفحة View Source فهذا يعني أن تطبيق الويب الخاص بك عُرضة لـ cross-site scripting. جرّب أيضًا عمل inject لسكربت <script>alert('hello');</script> في أحد حقول الإدخال. قد لا تعمل هذه التقنية في جميع الحالات لأنها تعتمد على كيفيّة استخدام المدخلات لتوليد الخرج output. يمكنك قراءة المزيد عن cross-site scripting من هنا. بالتوفيق
    1 نقطة
  3. swift keyboard من أفضل تطبيقات لوحات المفاتيح حسب تجربتي الشخصية فهو يضم ميزات منها ما استفسرت عنه وهو حركات التشكيل في اللغة العربية بالإضافة إلى أنه يستفيد من قاموسكالشخصي في الكتابة للتنبؤ بها مستقبلا ويمكنك الاحتفاظ بهذا القاموسحتى لو غيرت جهازك. ووجود حرف الكَاف(القاف المفخمة) التي لا توجد في الأبجدية العربية اتفاق على كتابته للأسف ونحن في المغرب نستعملها بشكل رسمي في تسمية المدن والأماكن وبعض الدول GO Keyboard لوحة جيدة أيضا لها نفس ميزات الاقتراح السابق وتتفوق عليه في عدد اللغات التي يمكنك العمل بها نفس الوقت و لا يعجبني فيها طريقة انبثاق الإشهارات
    1 نقطة
  4. لنقل بأنّك ترغب بالدّردشة مع صديقك، عندما تكتب رسالة في نموذج الرسائل، فيتوجّب على الخادوم أن يستقبل هذه الرّسالة ويعرضها على صديقك، لكن ماذا لو لم يقم صديقك بإعادة تحميل الصّفحة، لن تظهر له رسالتك أليس كذلك؟ هنا يأتي دور تقنيّة Ajax وهي ببساطة تقنية تقوم بإرسال طلبات HTTP (مثلا طلب الحصول على الرّسالة) دون الحاجة إلى إعادة تحميل الصّفحة كاملة، بل تقوم بإعادة تحميل جزء صغير من الصّفحة فقط، ما يزيد من سرعة التّصفّح، ويُمكنك مثلا أن تستعمل التّقنية لإعادة تحميل صندوق الرّسائل كل ثانية، فإن أرسلت رسالة إلى صديقك فسوف يستطيع أن يستقبلها في ثانية أو أقل، دون حاجة إلى أن يقوم بإعادة تحميل الصفحة ليتأكّد من إرسالك رسالة من عدمه.
    1 نقطة
  5. إليك مُختلف الطّرق للانتقال إلى نمط الإدخال، أقصد بالمؤشّر في الجمل التّالية الفأرة أو المربع الذي يُمكنك تحريكه باستعمال الأسهم لوضعه فوق الحرف المُناسب. i للانتقال إلى نمط الإدخال مع إبقاء المؤشّر في مكانه. I للانتقال إلى نمط الإدخال وتحريك المؤشّر إلى أول السّطر. o للانتقال إلى نمط الإدخال في سطر جديد بعد المؤشّر أي تحت المؤشّر. O للانتقال إلى نمط الإدخال في سطر جديد قبل المؤشّر (فوق المؤشّر).
    1 نقطة
  6. يُمكن أن تقوم بضغط جميع الملفّات المتواجدة في مجلّد معيّن ووضعها في ملف بامتداد zip عن طريق الأمر التّالي (مع تغيير zipfile إلى الاسم الذي تريده): zip zipfile.zip F.txt B.txt F.py أمّا إذا أردت أن تقوم بضغط مُجلّد كامل فيُمكنك ذلك بالأمر (مع تغيير directory إلى اسم المُجلّد): zip -r zipfile.zip directory أمّا إذا أردت أن تقوم بضغط جميع الملفّات الموجودة في مجلّد ما دون الملفّات المخفيّة فيُمكنك ذلك بالأمر التّالي (مع تغيير zipfile إلى الاسم الذي تريده وتغيير directory إلى اسم المُجلّد): find ./directory -path '*/.*' -prune -o -type f -print | zip ./zipfile.zip -@
    1 نقطة
×
×
  • أضف...