ASP é apenas uma tecnologia e um ambiente em execução. Nem todos os sistemas de gerenciamento de back-end são ASP. Eles também podem ser PHP, JSP, CGI ou ASPX ou outras tecnologias.
A brecha 'or'='or' que você mencionou é apenas uma brecha lógica na escrita do programa, não uma brecha no próprio ASP. Essa brecha é chamada de brecha de injeção. Seu princípio é o seguinte: quando o usuário insere Ao usar o usuário. nome e senha, envie um nome de usuário cuidadosamente construído a ou nome de usuário<>'a, a senha é: a ou pwd<>'a, e a declaração de julgamento do programa é: select * from user_table onde nome de usuário=nome de usuário e pwd=password Porém, após pegar o nome de usuário e a senha acima, torna-se: select * from user_table where username=a ou username<>a e pwd=a ou pwd<>a, torna-se a instrução SQL acima. Nesse caso, ocorre uma lacuna lógica. O programa pensará que o nome de usuário e a senha estão corretos e atribuirá o nome de usuário à sessão correta, entrando assim nos bastidores. a solução é usar a função replace() para filtrar ' e novamente limitar o número de caracteres inseridos nas caixas de entrada de nome de usuário e senha. Na verdade, se a outra parte não souber os campos de nome de usuário e senha no banco de dados. , ele não pode ser quebrado com sucesso.