Ao escrever asp, precisamos prestar atenção ao processamento de strings especiais para evitar que sejam exploradas por hackers. Amigos que usam asp devem consultá-lo. Copie o código do código da seguinte forma:
'=====================================
'Converta conteúdo para evitar acidentes
'=====================================
Função Content_Encode(ByVal t0)
SE IsNull(t0) ou Len(t0)=0 Então
Content_Encode=
Outro
Content_Encode=Substituir(t0,<,<)
Content_Encode=Substituir(Content_Encode,>,>)
Fim SE
Função final
'======================================
'Desconverter conteúdo
'======================================
Função Content_Decode(ByVal t0)
SE IsNull(t0) ou Len(t0)=0 Então
Content_Decode=
Outro
Content_Decode=Substituir(t0,<,<)
Content_Decode=Substituir(Content_Decode,>,>)
Fim SE
Função final
'=====================================
'Filtrar caracteres
'=====================================
Função FilterText(ByVal t0,ByVal t1)
SE Len(t0)=0 ou IsNull(t0) ou IsArray(t0) Então FilterText=:Sair da função
t0=Cortar(t0)
Selecione Caso t1
Caso 1
t0=Substituir(t0,Chr(32), )
t0=Substituir(t0,Chr(13),)
t0=Substituir(t0,Chr(10)&Chr(10),<br>)
t0=Substituir(t0,Chr(10),<br>)
Caso 2
t0=Substituir(t0,Chr(8),)'retorno
t0=Substituir(t0,Chr(9),)'tab(caractere de tabulação horizontal)
t0=Substituir(t0,Chr(10),)'Nova linha
t0=Substituir(t0,Chr(11),)'tab(guia vertical)
t0=Replace(t0,Chr(12),)'Mudança de página
t0=Replace(t0,Chr(13),)' retorno de carro chr(13)&chr(10) combinação de retorno de carro e avanço de linha
t0=Substituir(t0,Chr(22),)
t0=Substituir(t0,Chr(32),)'ESPAÇO
t0=Substituir(t0,Chr(33),)'!
t0=Substituir(t0,Chr(34),)'
t0=Substituir(t0,Chr(35),)'#
t0=Substituir(t0,Chr(36),)'$
t0=Substituir(t0,Chr(37),)'%
t0=Substituir(t0,Chr(38),)'&
t0=Substituir(t0,Chr(39),)''
t0=Substituir(t0,Chr(40),)'(
t0=Substituir(t0,Chr(41),)')
t0=Substituir(t0,Chr(42),)'*
t0=Substituir(t0,Chr(43),)'+
t0=Substituir(t0,Chr(44),)',
t0=Substituir(t0,Chr(45),)'-
t0=Substituir(t0,Chr(46),)'.
t0=Substituir(t0,Chr(47),)'/
t0=Substituir(t0,Chr(58),)':
t0=Substituir(t0,Chr(59),)';
t0=Substituir(t0,Chr(60),)'<
t0=Substituir(t0,Chr(61),)'=
t0=Substituir(t0,Chr(62),)'>
t0=Substituir(t0,Chr(63),)'?
t0=Substituir(t0,Chr(64),)'@
t0=Substituir(t0,Chr(91),)'/
t0=Substituir(t0,Chr(92),)'/
t0=Substituir(t0,Chr(93),)']
t0=Substituir(t0,Chr(94),)'^
t0=Substituir(t0,Chr(95),)'_
t0=Substituir(t0,Chr(96),)'`
t0=Substituir(t0,Chr(123),)'{
t0=Substituir(t0,Chr(124),)'|
t0=Substituir(t0,Chr(125),)'}
t0=Substituir(t0,Chr(126),)'~
Outro caso
t0=Substituir(t0, &, &)
t0=Substituir(t0, ', ')
t0=Substituir(t0, , )
t0=Substituir(t0, <, <)
t0=Substituir(t0, >, >)
Finalizar seleção
SE Instr(Lcase(t0),expressão)>0 Então
t0=Substituir(t0,expressão,expressão, 1, -1, 0)
Terminar se
FiltroText=t0
Função final
'======================================
'Filtrar caracteres comuns e HTML
'======================================
Função FilterHtml(ByVal t0)
SE Len(t0)=0 ou IsNull(t0) ou IsArray(t0) Então FilterHtml=:Sair da função
SE Len(Sdcms_Badhtml)>0 Então t0=ReplaceText(t0,<(//|)(&Sdcms_Badhtml&), <$1$2)
IF Len(Sdcms_BadEvent)>0 Então t0=ReplaceText(t0,<(.[^>]*)(&Sdcms_BadEvent&), <$1$2)
t0=TextoFiltro(t0,0)
FiltroHtml=t0
Função final
Função GotTopic(ByVal t0,ByVal t1)
SE Len(t0)=0 ou IsNull(t0) Então
GotTópico=
Função de saída
Fim SE
Dim l,t,c,i
t0=Substituir(Substituir(Substituir(Substituir(t0, , ),,chr(34)),>,>),<,<)
l = Len(t0)
t=0
Para I=1 Para l
c=Abs(Asc(Médio(t0,i,1)))
SE c>255 Então t=t+2 Caso contrário t=t+1
SE t>=t1 Então
gotTopic=Esquerda(t0,I)&…
Sair para
Outro
GotTopic=t0
Fim SE
Próximo
GotTopic = Substituir (Substituir (Substituir (Substituir (GotTopic, , ),chr (34),),>,>),<,<)
Função final
Função UrlDecode(ByVal t0)
Escurecer t1,t2,t3,i,t4,t5,t6
t1=
t2=Falso
t3 =
Para I = 1 para Len (t0)
t4 = Médio (t0,I,1)
SE t4=+ Então
t1=t1&
ElseIF t4=% Então
t5=Médio(t0,i+1,2)
t6=Cint(&H & t5)
SE t2 Então
t2=Falso
t1=t1&Chr(Cint(&H&t3&t5))
Outro
SE Abs(t6)<=127 então
t1=t1&Chr(t6)
Outro
t2 = Verdadeiro
t3=t5
Fim SE
Fim SE
Eu=eu+2
Outro
t1=t1&t4
Fim SE
Próximo
UrlDecode=t1
Função final
Função CutStr(byVal t0,byVal t1)
Dim l,t,c,i
SE IsNull(t0) Então CutStr=:Exit Função
l = Len(t0)
t1=Int(t1)
t=0
Para I=1 Para l
c=Asc(Médio(t0,I,1))
SE c<0 Ou c>255 Então t=t+2 Caso contrário, t=t+1
SE t>=t1 Então
CortarStr=Esquerda(t0,I)&...
Sair para
Outro
CortarStr=t0
Fim SE
Próximo
Função final
Função CloseHtml(ByVal t0)
Dim t1,I,t2,t3,Regs,Correspondências,J,Correspondência
Definir Regs = Novo RegExp
Regs.IgnoreCase = Verdadeiro
Regs.Global=Verdadeiro
t1=Array(p,div,span,tabela,ul,fonte,b,u,i,h1,h2,h3,h4,h5,h6)
Para I = 0 para UBound (t1)
t2=0
t3=0
Regs.Pattern=/<&t1(I)&( [^/</>]+|)/>
Definir correspondências=Regs.Execute(t0)
Para cada partida nas partidas
t2=t2+1
Próximo
Regs.Pattern=/</&t1(I)&/>
Definir correspondências=Regs.Execute(t0)
Para cada partida nas partidas
t3=t3+1
Próximo
Para j=1 Para t2-t3
t0=t0+</&t1(I)&>
Próximo
Próximo
FecharHtml=t0
Função final