При написании asp нам необходимо уделять внимание обработке специальных строк, чтобы предотвратить их использование хакерами. Друзья, использующие asp, должны обратиться к нему. Скопируйте код кода следующим образом:
'====================================
'Преобразуйте контент, чтобы предотвратить несчастные случаи
'====================================
Функция Content_Encode(ByVal t0)
ЕСЛИ IsNull(t0) Или Len(t0)=0 Тогда
Content_Encode=
Еще
Content_Encode=Заменить(t0,<,<)
Content_Encode=Заменить(Content_Encode,>,>)
Конец ЕСЛИ
Конечная функция
'====================================
'Деконвертировать контент
'====================================
Функция Content_Decode(ByVal t0)
ЕСЛИ IsNull(t0) Или Len(t0)=0 Тогда
Content_Decode=
Еще
Content_Decode=Заменить(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=Заменить(t0,Chr(33),)'!
t0=Заменить(t0,Chr(34),)'
t0=Заменить(t0,Chr(35),)'#
t0=Заменить(t0,Chr(36),)'$
t0=Заменить(t0,Chr(37),)'%
t0=Заменить(t0,Chr(38),)'&
t0=Заменить(t0,Chr(39),)''
t0=Заменить(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=Заменить(t0,Chr(59),)';
t0=Заменить(t0,Chr(60),)'<
t0=Заменить(t0,Chr(61),)'=
t0=Заменить(t0,Chr(62),)'>
t0=Заменить(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=Заменить(t0,Chr(96),)'`
t0=Заменить(t0,Chr(123),)'{
t0=Заменить(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=:Exit Function
ЕСЛИ Len(Sdcms_Badhtml)>0 Тогда t0=ReplaceText(t0,<(//|)(&Sdcms_Badhtml&), <$1$2)
ЕСЛИ 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=Заменить(Заменить(Заменить(Заменить(t0, , ),,chr(34)),>,>),<,<)
л = Лен (t0)
т=0
Для I=1 К л
c=Abs(Asc(Mid(t0,i,1)))
ЕСЛИ c>255 Тогда t=t+2 Иначе t=t+1
ЕСЛИ t>=t1 Тогда
gotTopic=Влево(t0,I)&…
Выход для
Еще
GotTopic=t0
Конец ЕСЛИ
Следующий
GotTopic=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=+ Тогда
т1=т1&
ИначеЕСЛИ 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 = Массив (p, div, диапазон, таблица, ul, шрифт, 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
Конечная функция