مركز حقوق الإنسان (9)، مركز حقوق الإنسان (10)، مركز حقوق الإنسان (13)، مركز حقوق الإنسان (32)، مركز حقوق الإنسان (34)
جميع الجداول المتعلقة برموز ASCII: [url][/url]
chr(13) هو حرف إرجاع
Chr(10) هو حرف السطر الجديد
chr(32) هو حرف فضاء
9/34 علامة تبويب، لم يتم تحديدها؟
وهنا بعض الأمثلة
طابع الفضاء الخاص
في برمجة asp، غالبًا ما نستخدم الدالة Trim(rtrim,ltrim) لإزالة المسافات في بداية ونهاية بعض البيانات. كتب المؤلف مؤخرًا غرفة دردشة asp بالكود التالي:
<% اسم خافت، عنوان
الاسم = القطع (request.form ("الاسم"))
كلمة المرور = تقليم (request.form ("كلمة المرور"))
إذا كان الاسم = ""أو كلمة المرور ="" ثم Response.redirect "error.asp?error=name&name=null"
myDSN = "DSN = اختبار؛ uid = اختبار؛ pwd = اختبار"
تعيين cn=server.createobject("adodb.connection")
cn.open myDSN
sql = "أدخل في قيم الاختبار (الاسم والعنوان)('"&name&"','"&كلمة المرور&"')"
cn.تنفيذ (SQL)
cn.إغلاق%>
استخدم المؤلف وظيفة القطع لإزالة المسافات في البداية والنهاية، في ظل الظروف العادية، يتم تنفيذ هذا البرنامج بشكل طبيعي، ولكن اكتشف المؤلف لاحقًا أنه يمكن لأي شخص استخدام المسافات للدخول، مما يعني أن اسم المستخدم كان عبارة عن مسافات بالكامل، ولكن حاول المؤلف استخدام المسافات بنفسه لكنه لم يتمكن من تجاوزها (أي تم اكتشافها بواسطة البرنامج). تمت إزالة المسافات في البداية والنهاية بواسطة وظيفة القطع يمكن استخدامه إذا لزم الأمر. استخدم وظيفة لإزالة المسافات في المنتصف نظرًا لأن المؤلف يستخدم معلومات المستخدم المسجلة في قاعدة بيانات SQL، يشك المؤلف في أنه استخدم شيئًا آخر لمنع النظام من رؤيته، لذلك يذهب للتحقق من قاعدة بيانات SQL. الذي يسجل معلومات المستخدم (لقد استخدمت المؤلف هذه الطريقة لرؤية المستخدمين مع فواصل الأسطر)، ولكن ما زلت أرى أن معلومات المستخدم في قاعدة البيانات تحتوي أيضًا على مسافات. هل هذا يعني أن هذا المستخدم قد استخدم طريقة لتجاوز اسم المستخدم الخاص بي ومراقبة كلمة المرور؟ ؟ ؟ لم أتمكن حقًا من العثور على أي ثغرات في البرنامج، لذا لم يكن بإمكاني سوى أن أطلب النصيحة من هذا المستخدم، ولحسن الحظ، أخبرني هذا المستخدم بسهولة أنه تبين أنه "Alt+255"، اضغط باستمرار على المفتاح alt ثم اضغط على ". Center" على لوحة المفاتيح الصغيرة. 2، "5"، "5" ستنتج حرف "مسافة" خاص (المؤلف ليس واضحًا تمامًا بشأن هذا المفهوم. هذا حرف تحكم يتم استخدامه في بعض المترجمين. يمكنك رؤية word2000 في المحرر، ويجب أن يكون هناك أحرف تحكم أخرى). يختلف حرف المسافة هذا عن الحرف التقليدي الذي تم إنشاؤه عن طريق الضغط على شريط المسافة، ورمزه التصاعدي هو 255، والرمز التصاعدي للمسافة التقليدية المكتوبة هو 32. يمكن لوظيفة القطع التعرف على الكود وإزالته فقط باستخدام الكود التصاعدي 32، لذلك هناك مستخدمون لديهم مسافات! واستجابة لهذا الموقف، صمم المؤلف الوظيفتين التاليتين لإزالة حرف "المسافة":
وظيفة شوانكونج (شارع)
نتيجة قاتمة
خافت ي
ي = لين (شارع)
النتيجة = ""
خافت أنا
لأني = 1 إلى ي
حدد حالة منتصف (شارع، ط، 1)
الحالة "<"
النتيجة=النتيجة+"<"
الحالة ">"
النتيجة=النتيجة+">"
حالة حقوق الإنسان(34)
النتيجة=النتيجة+"""
قضية "&"
result=result+"&" 'يقوم الكود أعلاه بتحويل بعض علامات html
الحالة chr(255) "منع المسافات الخاصة."
result=result
الحالة chr(13) "منع إرجاع السطر."
النتيجة=النتيجة+""
الحالة chr(10) "منع أحرف السطر الجديد."
النتيجة=النتيجة+""
حالة أخرى
النتيجة = النتيجة + منتصف (شارع، ط، 1)
حدد النهاية
التالي
xuankong=result
وظيفة النهاية
ثم استخدم هذه الوظيفة في برنامج asp الخاص بك، مثل:
name=xuankong(trim(request.form("name")))
نظرًا لأن قيمة الرمز التصاعدي للحرف 0-z تقع في النطاق 48-122، يمكنك استخدام الطريقة التالية للمراقبة:
خافت ي
ي=لين(تريم(request.form("name")))
لأني = 1 إلى ي
إذا كان asc(mid(name,i,1))>122 أو asc(mid(name,i,1))<48 ثم Response..redirect"error.asp?
خطأ = خاص"
التالي
على الرغم من أنه لم يتم العثور حتى الآن على أن هذا النوع من "المساحة" يسبب مشاكل من شأنها أن تلحق الضرر بالبرنامج، إلا أنه يمكن أن يسبب مشاكل، ومن الأفضل منعه، ومع ذلك، فإن هذا النوع من المساحة له أيضًا ميزة إذا تم استخدامه كلمة مرور الإنترنت الخاصة بك، هيهي... وأخشى أن الكثير من الناس لا يمكنهم رؤيتها! كل ما رأيته كان يُعتقد أنه مساحة، لكنه لم يكن كذلك... المؤلف ليس على دراية بـ php وjsp، لذلك لا أعرف ما إذا كان هذا النوع من المشاكل موجودًا في هذين الأمرين.
neweguo 2006-1-12 01:55 صباحًا
كيفية قراءة المساحات
كيفية قراءة المساحات
غالبًا ما نحتاج إلى عرض المحتوى المأخوذ من الملفات الموجودة على صفحات الويب ديناميكيًا، إذا كنت تكتب برنامجًا مثل غرفة دردشة أو منتدى، فيجب أولاً تخزين محتوى كل متحدث في ملف نصي ثم عرضه على صفحة الويب. لكن عنصر التحكم الذي نستخدمه على صفحة الويب للسماح للمستخدمين بإدخال المحتوى هو مربع النص. ثم عندما يتم عرض المحتوى الموجود في مربع النص على صفحة الويب، لا يمكن عرض الأحرف مثل المسافات وفواصل الأسطر، مما يعني عدم وجود فقرات. لعرض الفقرات على صفحة الويب، يجب إدراج علامات HTML في المسافات وفواصل الأسطر حيث نقوم بإدخال النص لعرض هذه الأحرف. يرجى الاطلاع على المثال أدناه.
إذا كانت هناك شاشة غرفة دردشة على صفحة الويب، بعد إدخال المحتوى في مربع النص، انقر فوق "إرسال" لعرض المحتوى الخاص بنا على الصفحة. يسمى مربع النص Text1. يمكننا استخدام الطريقة التالية للقيام بذلك بذكاء شديد يدرك وظيفة عرض فواصل الأسطر والمسافات.
<%
...
...
str=request.querystring("text1")
str=Replace(str, Chr(32), " ")
'استبدل المسافات بالإشارات
str=Replace(str, vbCrLf, "<br>")
'استبدل حرف الإرجاع وأحرف تغذية الأسطر بالعلامة <br>
الاستجابة.اكتب شارع
...
...
%>
بعد تمرير الكود أعلاه، نقوم بتغيير حرف إرجاع السطر وتغذية الأسطر في النص إلى علامة تغذية السطر <br> التي يتعرف عليها المتصفح، واستبدال المسافات بعلامة المسافة. من بينها، يمثل Chr(32) مسافة ويمثل vbCrLf أحرف الإرجاع وتغذية الأسطر.
neweguo 2006-1-12 01:55 صباحًا
chr(13) هو حرف إرجاع
(
مثال: استبدل كافة أحرف الإرجاع بـ <br/>
#Replace(foo, Chr(13), "<br />", "ALL")#
)
Chr(10) هو حرف السطر الجديد
جميع الجداول المتعلقة برموز ASCII: [url][/url]
<كفسكريبت>
/**
* نسخة محسنة من وظيفة تنسيق فقرة المقالة
* استخدم ) لاستبدال TAB ودعم أنظمة متعددة
* إعادة الكتابة ودعم أنظمة التشغيل المتعددة بواسطة Nathan Dintenfas.
*
* @param string السلسلة المراد تنسيقها (مطلوب).
*return يُرجع سلسلة.
* @author بن فورتا ([email][email protected][/email])
* @ الإصدار 3، 26 يونيو 2002
*/
الدالة Paragrap1hFormat2(str) {
// قم أولاً بتحويل نمط Windows إلى نمط Unix
str = استبدال(str,chr(13)&chr(10),chr(10),"ALL");
// الآن قم بتحويل نمط Macintosh إلى نمط Unix
str = استبدال(str,chr(13),chr(10);"ALL");
// الآن قم بإصلاح علامات التبويب
str = استبدال(str,chr(9)," ,"ALL");
// الآن قم بإرجاع النص المنسق بتنسيق HTML
إرجاع استبدال(str,chr(10),"<br />"،"ALL");
}
</كفسكريبت>