Este artigo estuda principalmente uma questão relativamente comum nas perguntas da entrevista de Java e questões de julgamento e prevenção da injeção de SQL. Os detalhes são os seguintes.
A injeção de SQL é o método de ataque mais usado para hackers atualmente. Seu princípio é usar o banco de dados para analisar identificadores especiais para passá -los à força da página para o plano de fundo. Altere a estrutura da instrução SQL, alcance permissões estendidas, crie usuários de alto nível, modifique à força as informações do usuário e outras operações.
Através do princípio da injeção de SQL, sabemos que julgando os dados que a injeção de SQL pode ser passada pela página, o plano de fundo não deve acreditar em nenhum dado passado do fundo, especialmente parâmetros inteiros especiais e parâmetros especiais de caracteres!
1. Verifique o tipo de dados variável e o formato
Desde que seja uma variável em um formato fixo, antes que a instrução SQL seja executada, ela deve ser estritamente verificada no formato fixo para garantir que a variável seja o formato que esperávamos!
2. Filtre símbolos especiais
Para variáveis que não podem ser determinadas em um formato fixo, os símbolos especiais devem ser usados para processá -las ou transferi -las. Há ambiguidade no SQL.
Quando carregamos fotos
ENCTYPE =/"Multipart/Form-Data/" Enctype = "Multipart/Form-Data"
Sem "/", o ENCTYPE = "Multipart/Form-Data" no formulário significa definir a codificação MIME do formulário. Por padrão, esse formato de codificação é aplicativo/x-www-form-urlencoded, que não pode ser usado para upload de arquivo; Somente usando os dados multipart/formulários, os dados do arquivo podem ser totalmente passados e as seguintes operações são executadas.
3. Variáveis de ligação e use declarações pré -compiladas
De fato, o uso de declarações pré -compiladas para ligar variáveis é a melhor maneira de impedir a injeção de SQL e a semântica do uso de instruções SQL pré -compiladas não mudará. Nas declarações SQL, use um ponto de interrogação para variáveis? Isso significa que, por mais capaz de um hacker, ele não pode alterar o formato das declarações SQL e impede fundamentalmente a ocorrência de ataques de injeção de SQL.
4. Segurança de criptografia de informações do banco de dados
Às vezes, quando as informações do banco de dados são vazadas, devemos criptografar a senha do banco de dados e outras informações (MD5, etc.), para que as informações vazem e as perdas possam ser controladas dentro de um determinado intervalo.
1. Não abra um ambiente de produção para resumir a exibição de erros do servidor da web.
2. Nunca acredite na entrada variável do lado do usuário. Variáveis com formatos fixos devem ser estritamente verificados. As variáveis sem formatos fixos precisam executar a filtragem necessária e escapar de caracteres especiais, como cotações.
3. Use declarações SQL pré -compiladas que ligam variáveis
4. Faça um bom trabalho no gerenciamento de permissão da conta do banco de dados
5. Criptografar e processar estritamente as informações confidenciais do usuário
Um bom programa deve prestar atenção à segurança, caso contrário, é adequado apenas para praticar.
O exposto acima é todo o conteúdo deste artigo sobre a análise das perguntas da entrevista em Java e a prevenção de injeção de SQL. Espero que seja útil para todos. Amigos interessados podem continuar se referindo a outros tópicos relacionados neste site. Se houver alguma falha, deixe uma mensagem para apontá -la. Obrigado amigos pelo seu apoio para este site!