При написании asp нам необходимо уделять внимание обработке специальных строк, чтобы предотвратить их использование хакерами. Друзья, использующие asp, должны обратиться к нему.
Скопируйте код кода следующим образом:
'====================================
'Преобразуйте контент, чтобы предотвратить несчастные случаи
'====================================
Функция Content_Encode(ByVal t0)
ЕСЛИ IsNull(t0) Или Len(t0)=0 Тогда
Content_Encode=""
Еще
Content_Encode=Replace(t0,"<","<")
Content_Encode=Заменить(Content_Encode,">",">")
Конец ЕСЛИ
Конечная функция
'====================================
'Деконвертировать контент
'====================================
Функция Content_Decode(ByVal t0)
ЕСЛИ IsNull(t0) Или Len(t0)=0 Тогда
Content_Decode=""
Еще
Content_Decode=Replace(t0,"<","<")
Content_Decode=Заменить(Content_Decode,">",">")
Конец ЕСЛИ
Конечная функция
'====================================
'Фильтровать символы
'====================================
Функция FilterText(ByVal t0, ByVal t1)
ЕСЛИ Len(t0)=0 Или IsNull(t0) Или IsArray(t0), Тогда FilterText="":Выход из функции
t0=Обрезать(t0)
Выберите вариант t1
Случай «1»
t0=Заменить(t0,Chr(32)," ")
t0=Заменить(t0,Chr(13),"")
t0=Заменить(t0,Chr(10)&Chr(10),"<br>")
t0=Заменить(t0,Chr(10),"<br>")
Случай «2»
t0=Replace(t0,Chr(8),"")'return
t0=Replace(t0,Chr(9),"")'tab (символ горизонтальной табуляции)
t0=Replace(t0,Chr(10),"")'Новая строка
t0=Replace(t0,Chr(11),"")'tab (символ вертикальной табуляции)
t0=Replace(t0,Chr(12),"")'Смена страницы
t0=Replace(t0,Chr(13),"")' возврат каретки chr(13)&chr(10) комбинация возврата каретки и перевода строки
t0=Заменить(t0,Chr(22),"")
t0=Заменить(t0,Chr(32),"")'ПРОБЕЛ
t0=Replace(t0,Chr(33),"")'!
t0=Заменить(t0,Chr(34),"")'"
t0=Заменить(t0,Chr(35),"")'#
t0=Replace(t0,Chr(36),"")'$
t0=Заменить(t0,Chr(37),"")'%
t0=Заменить(t0,Chr(38),"")'&
t0=Заменить(t0,Chr(39),"")''
t0=Replace(t0,Chr(40),"")'(
t0=Заменить(t0,Chr(41),"")')
t0=Заменить(t0,Chr(42),"")'*
t0=Заменить(t0,Chr(43),"")'+
t0=Заменить(t0,Chr(44),"")',
t0=Заменить(t0,Chr(45),"")'-
t0=Заменить(t0,Chr(46),"")'.
t0=Заменить(t0,Chr(47),"")'/
t0=Заменить(t0,Chr(58),"")':
t0=Replace(t0,Chr(59),"")';
t0=Replace(t0,Chr(60),"")'<
t0=Заменить(t0,Chr(61),"")'=
t0=Заменить(t0,Chr(62),"")'>
t0=Replace(t0,Chr(63),"")'?
t0=Заменить(t0,Chr(64),"")'@
t0=Заменить(t0,Chr(91),"")'/
t0=Заменить(t0,Chr(92),"")'/
t0=Заменить(t0,Chr(93),"")']
t0=Заменить(t0,Chr(94),"")'^
t0=Заменить(t0,Chr(95),"")'_
t0=Replace(t0,Chr(96),"")'`
t0=Replace(t0,Chr(123),"")'{
t0=Replace(t0,Chr(124),"")'|
t0=Заменить(t0,Chr(125),"")'}
t0=Заменить(t0,Chr(126),"")'~
Другое дело
t0=Заменить(t0, "&", "&")
t0=Заменить(t0, "'", "'")
t0=Заменить(t0, """", """)
t0=Заменить(t0, "<", "<")
t0=Заменить(t0, ">", ">")
Конец выбора
ЕСЛИ Instr(Lcase(t0),"выражение")>0 Тогда
t0=Заменить(t0,"выражение","выражение", 1, -1, 0)
Конец, если
ФильтрТекст=t0
Конечная функция
'====================================
'Фильтровать общие символы и HTML
'====================================
Функция FilterHtml(ByVal t0)
ЕСЛИ Len(t0)=0 Или IsNull(t0) Или IsArray(t0) Тогда FilterHtml="":Выход из функции
ЕСЛИ Len(Sdcms_Badhtml)>0 Тогда t0=ReplaceText(t0,"<(//|)("&Sdcms_Badhtml&")", "<$1$2")
IF Len(Sdcms_BadEvent)>0 Тогда t0=ReplaceText(t0,"<(.[^>]*)("&Sdcms_BadEvent&")", "<$1$2")
t0=ФильтрТекст(t0,0)
ФильтрHtml=t0
Конечная функция
Функция GotTopic(ByVal t0,ByVal t1)
ЕСЛИ Len(t0)=0 ИЛИ IsNull(t0) Тогда
GotTopic=""
Выход из функции
Конец ЕСЛИ
Дим л, т, с, я
t0=Replace(Replace(Replace(Replace(t0," "," "),"",chr(34)),">",">"),"<","<")
л=Длен(т0)
т=0
Для I=1 К л
c=Abs(Asc(Mid(t0,i,1)))
ЕСЛИ c>255 Тогда t=t+2 Иначе t=t+1
ЕСЛИ t>=t1 Тогда
gotTopic=Left(t0,I)&"…"
Выход для
Еще
GotTopic=t0
Конец ЕСЛИ
Следующий
GotTopic=Replace(Replace(Replace(Replace(GotTopic," "," "),chr(34),""),">",">"),"<","<")
Конечная функция
Функция UrlDecode(ByVal t0)
Тусклый t1,t2,t3,i,t4,t5,t6
т1=""
t2=Ложь
т3=""
Для I=1 к Len(t0)
t4=Средний(t0,I,1)
ЕСЛИ t4="+" Тогда
t1=t1&" "
ИначеЕСЛИ t4="%" Тогда
t5=Средний(t0,i+1,2)
t6=Цинт("&H" & t5)
ЕСЛИ t2 Тогда
t2=Ложь
t1=t1&Chr(Cint("&H"&t3&t5))
Еще
ЕСЛИ Abs(t6)<=127, то
t1=t1&Chr(t6)
Еще
t2=Истина
т3=т5
Конец ЕСЛИ
Конец ЕСЛИ
Я=Я+2
Еще
т1=т1&т4
Конец ЕСЛИ
Следующий
УрлДекод=t1
Конечная функция
Функция CutStr(byVal t0,byVal t1)
Дим л, т, с, я
ЕСЛИ IsNull(t0), то CutStr="":выход из функции
л=Длен(т0)
т1=Инт(т1)
т=0
Для I=1 К л
c=Asc(Середина(t0,I,1))
ЕСЛИ c<0 Или c>255 Тогда t=t+2 Иначе t=t+1
ЕСЛИ t>=t1 Тогда
CutStr=Влево(t0,I)&"..."
Выход для
Еще
CutStr=t0
Конец ЕСЛИ
Следующий
Конечная функция
Функция CloseHtml(ByVal t0)
Dim t1,I,t2,t3,регы,матчи,J,матч
Установить Regs=Новое регулярное выражение
Regs.IgnoreCase=Истина
Regs.Global=Истина
t1=Array("p","div","span","table","ul","font","b","u","i","h1","h2","h3 ","h4","h5","h6")
Для I=0 к UBound(t1)
т2=0
т3=0
Regs.Pattern="/<"&t1(I)&"( [^/</>]+|)/>"
Установить Matches=Regs.Execute(t0)
За каждый матч в матчах
т2=т2+1
Следующий
Regs.Pattern="/</"&t1(I)&"/>"
Установить Matches=Regs.Execute(t0)
За каждый матч в матчах
т3=т3+1
Следующий
Для j=1 К t2-t3
t0=t0+"</"&t1(I)&">"
Следующий
Следующий
CloseHtml=t0
Конечная функция