Ewebeditor e editor fckeditork filtram aspas simples
Usamos o método de escrita SQL=insert into product(title,content)values(' &request(title)& ' ,' &request(content)& ' ), então encontramos o conteúdo que o cliente COPIOU no editor naquele momento e descobri que, com certeza, esse conteúdo contém aspas simples. Acontece que foi precisamente porque o conteúdo enviado pelo cliente ao editor continha aspas simples que nossa instrução SQL foi alterada, o que equivale a SQL=insert into product(. título, conteúdo) valores ('conteúdo'. ,'content') torna-se SQL=insert into product(title,content) values('content','content''). Se olharmos de perto, saberemos que só porque há uma aspa simples extra no conteúdo, a instrução SQL ocorre. Há um erro grave de gravação. No entanto, também estamos surpresos que, como foi escrita incorretamente, por que a instrução SQL não fornece uma mensagem de erro, mas também avisa que a operação foi bem-sucedida? pense nos pequenos hackers comuns dos anos de 2003. Gosto de usar 'ou' =' ou' O método de intrusão em segundo plano parece tirar vantagem do bug de que aspas simples não são filtradas quando o SQL é executado. Como resultado, não importa como o SQL é executado, o resultado retorna verdadeiro. escrever o programa deve ser o mais simples e claro possível, o que também é um erro. Pronto, o problema foi encontrado. Futuramente, antes de todo o SQL ser inserido no banco de dados, iremos filtrar os campos antes de passar o valor, para que esse problema não ocorra mais. Você pode simplesmente usá-lo. Ele está pronto para ser chamado.
Função HTMLEncode(Str)
Se for nulo (Str) então
Código HTML =
Função de saída
Terminar se
Str = Substituir(Str,Chr(0),, 1, -1, 1)
Str = Substituir(Str, , ", 1, -1, 1)
Str = Substituir(Str,<,<, 1, -1, 1)
Str = Substituir(Str,>,>, 1, -1, 1)
Str = Substituir(Str, script, script, 1, -1, 0)
Str = Substituir (Str, SCRIPT, SCRIPT, 1, -1, 0)
Str = Substituir (Str, Script, Script, 1, -1, 0)
Str = Substituir (Str, script, Script, 1, -1, 1)
Str = Substituir(Str, objeto, objeto, 1, -1, 0)
Str = Substituir (Str, OBJETO, OBJETO, 1, -1, 0)
Str = Substituir (Str, Objeto, Oobjeto, 1, -1, 0)
Str = Substituir(Str, objeto, objeto, 1, -1, 1)
Str = Substituir (Str, miniaplicativo, applet, 1, -1, 0)
Str = Substituir (Str, APPLET, APPLET, 1, -1, 0)
Str = Substituir (Str, miniaplicativo, Applet, 1, -1, 0)
Str = Substituir (Str, miniaplicativo, Applet, 1, -1, 1)
Str = Substituir(Str, [, [)
Str = Substituir(Str, ], ])
Str = Substituir(Str, , , 1, -1, 1)
Str = Substituir(Str, =, =, 1, -1, 1)
Str = Substituir(Str, ', '', 1, -1, 1)
Str = Substituir(Str, select, sel'ct, 1, -1, 1)
Str = Substituir (Str, executar, eexecutar, 1, -1, 1)
Str = Substituir (Str, exec, exec, 1, -1, 1)
Str = Substituir(Str, join, join, 1, -1, 1)
Str = Substituir (Str, união, union, 1, -1, 1)
Str = Substituir (Str, onde, onde, 1, -1, 1)
Str = Substituir (Str, inserir, inserir, 1, -1, 1)
Str = Substituir(Str, delete, del'te, 1, -1, 1)
Str = Substituir (Str, atualizar, atualizar, 1, -1, 1)
Str = Substituir(Str, like, likee, 1, -1, 1)
Str = Substituir (Str, drop, drop, 1, -1, 1)
Str = Substituir (Str, criar, criar, 1, -1, 1)
Str = Substituir (Str, renomear, renomear, 1, -1, 1)
Str = Substituir (Str, contagem, count, 1, -1, 1)
Str = Substituir (Str, chr, chr, 1, -1, 1)
Str = Substituir (Str, mid, mid, 1, -1, 1)
Str = Substituir (Str, truncar, truncar, 1, -1, 1)
Str = Substituir(Str, nchar, nch'r, 1, -1, 1)
Str = Substituir(Str, char, ch'r, 1, -1, 1)
Str = Substituir (Str, alterar, alter, 1, -1, 1)
Str = Substituir (Str, elenco, não posso, 1, -1, 1)
Str = Substituir (Str, existe, exists, 1, -1, 1)
Str = Substituir(Str,Chr(13), , 1, -1, 1)
HTMLEncode = Substituir(Str,','', 1, -1, 1)
Função final