بناء "خروج" الصفحة باستخدام كلاسيك ASP تجنب المزالق الرئيسية البرمجة عبر الموقع

StackOverflow https://stackoverflow.com/questions/231204

سؤال

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

والغرض من الصفحة هو لإعلام المستخدم أنهم يغادرون "نحن" الموقع والذهاب إلى موقع آخر. انها في الاساس إخلاء، ولكن نظرا لمحدودية الموارد وضيق الوقت لا أستطيع أن أضيف هذا العقد إلى كل موقع ندير.

وهذا هو جوهر المشكلة. القانون الحالي تسحب متغير من سلسلة الاستعلام لإنشاء الارتباط "تواصل" في نافذة جديدة. من الواضح أن هذا يخلق العديد من المشاكل في شكل عبر برمجة الموقع.

وكيف يمكنني التعامل مع هذا التحديث للقضاء على معظم (إن لم يكن كل) من القضايا عبر موقع البرمجة باستخدام VBScript / ASP.

ورمز أنا باستخدام أدناه.

<%@ Language = vbScript %>
<% Option Explicit %>

<%
Dim strLink
strLink = Request.QueryString("site")
strLink = Replace(strLink, "<", "&lt")
strLink = Replace(strLink, ">", "&gt;")
strLink = Replace(strLink, chr(34), "")
strLink = Replace(strLink, "script", "", 1, -1, 1)
strLink = Replace(strLink, "onclick", "", 1, -1, 1)
strLink = Replace(strLink, "ondblclick", "", 1, -1, 1)
strLink = Replace(strLink, "onmousedown", "", 1, -1, 1)
strLink = Replace(strLink, "onmouseover", "", 1, -1, 1)
strLink = Replace(strLink, "onmousemove", "", 1, -1, 1)
strLink = Replace(strLink, "onmouseout", "", 1, -1, 1)
strLink = Replace(strLink, "onkeypress", "", 1, -1, 1)
strLink = Replace(strLink, "onkeydown", "", 1, -1, 1)
strLink = Replace(strLink, "onkeyup", "", 1, -1, 1)
strLink = Replace(strLink, "onfocus", "", 1, -1, 1)
strLink = Replace(strLink, "onblur", "", 1, -1, 1)
strLink = Replace(strLink, "&&", "")
strLink = Replace(strLink, "##", "")
strLink = Replace(strLink, "&#", "")
%>

<a href="<%= strLink %>">Continue</a>
هل كانت مفيدة؟

المحلول

وهذا ما أوصي لتعقيم HTML -

وHTML البيضاء هو الاحدث في "خدمة ويب قليل بيثون باردة أقام على محرك التطبيقات" زميلي حسن ديويت كلينتون.

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

http://html-whitelist.appspot.com/

نصائح أخرى

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

وأقترح كتابة التعابير المنطقية (أو السؤال عن كيفية كتابة مثل هذا التعابير المنطقية على ستاكوفيرفلوو).

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

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

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