Feed indefeso php. Vulnerabilidade do PHP e proteção contra injeções de PHP. Regras para programação segura em PHP. Evite vazamentos de informações

Em todo o mundo, o slogan “Segurança não é brincadeira” pode ser encontrado nos aeroportos. Todo administrador de sistema deve anexar o mesmo slogan próximo ao seu servidor PHP. E qualquer pessoa que se conecte a um servidor na Internet deve tomar medidas de segurança adequadas ou corre o risco de perder dados e até dinheiro para hackers mal-intencionados. programas poderão causar danos usando o teclado do seu computador.

Um desenvolvedor de site preocupado com questões de segurança deve repetir constantemente: “Não confie na rede”. Se você estiver preocupado em proteger seu site, repita esta afirmação ao codificar páginas futuras em seu site. Qualquer informação transmitida ao servidor pela rede (seja URL, dados de Formulários HTML ou dados provenientes de alguma outra porta de rede) devem ser considerados potencialmente perigosos. Este artigo propõe vários métodos para proteger as informações recebidas. É necessário não só aplicar estes métodos, mas também prestar atenção certo tempo identificar outros perigos potenciais e encontrar formas de os prevenir.

A segunda regra para criar um site seguro é: “Minimize os danos”. O que acontece se o programa que você escreve, que você considera totalmente confiável, se revelar vulnerável? Mesmo apenas para ficar completamente seguro, limite os danos que um invasor pode causar ao explorar esta vulnerabilidade.

Quando os visitantes acessam seu site, eles esperam que ele contenha informações válidas que não prejudiquem a eles ou a seus computadores e que as informações fornecidas sejam tratadas adequadamente. Existe sempre um certo risco de violação de segurança para um visitante ao interagir com qualquer site, independentemente de se tratar de um site de entretenimento, informação ou comércio eletrónico. A responsabilidade de proteger os visitantes de tais riscos cabe ao designer do site. Isso significa que você não deve apenas armazenar com segurança as informações fornecidas pelos visitantes em seu servidor, mas também tomar medidas para proteger as informações fornecidas enquanto elas são transferidas dos computadores dos visitantes para o seu servidor.

Mas todas essas considerações não devem interferir nas suas intenções, por exemplo, de colocar seu site de comércio eletrônico online.

Possíveis ataques

Conectar um servidor à Internet pode ser comparado a abrir uma loja em uma rua movimentada. Você gostaria de receber muitos visitantes, mas sem tomar precauções, poderá descobrir que seu descuido será aproveitado não por visitantes comuns, mas por convidados muito indesejados.

Geralmente hackers nomeie aqueles que seriam nomeados mais corretamente hackers de segurança de software. Na comunidade de informática, os crackers de segurança são especialistas que, usando a sorte ou suas habilidades, superam a segurança sistemas de computador e causar danos. E hackers são programadores que sabem escrever programas com maestria e são capazes não apenas de compreender códigos complexos, mas também de escrever de forma independente códigos eficazes (e muitas vezes inacessíveis para pessoas de fora) em muitas linguagens. Para um programador, adquirir o título de hacker é uma honra, e o título de cracker de software aparentemente significa que seu proprietário deve ficar de olho nas postagens de “Procurado”.

Sem perceber o quão humilhante é o título de cracker de software, muitos programadores novatos embarcam nesse caminho, recorrendo ao uso de ferramentas e scripts que encontram na web. Esses hackers novatos são chamados de script-kiddies ou, em nossa língua, kulhatskers. Muitas vezes essas pessoas mal entendem o que estão fazendo. Normalmente, esta categoria de infratores está por trás de ataques primitivos, como comprometimento de sites, injeções de XSS e SQL.

Comprometimento do site e ataques XSS

Os casos de comprometimento de sites, que muitas vezes são mais incômodos do que realmente prejudiciais, são bastante comuns, uma vez que muitos sites oferecem uma oportunidade para um hacker de segurança de software anunciar ao mundo que conseguiu atingir seu objetivo. Para comprometer um site mal projetado, às vezes basta usar apenas um navegador da web. Considere, por exemplo, o seguinte programa:

Página com um formulário de comentário simples PHP Basics

Este programa implementa um sistema de comentários de uma forma muito primitiva (se você está estudando meu tutorial PHP desde o início, talvez ainda não esteja familiarizado com operações de banco de dados; se estiver, recomendo que você retorne a este artigo depois de ler o relevante material sobre MySQL).

Ao ler este código, um programador experiente começa a não se sentir totalmente confiante (lembre-se - “Não confie na rede”). Esse programa aceita dados de formulário que devem conter texto de comentário. Este texto é atribuído à variável $comment e armazenado no banco de dados para ser exibido aos futuros visitantes. Se os dados inseridos forem os que esperamos, não haverá problema.

Agora coloque-se no lugar do cooler por um momento e imagine o que aconteceria se a entrada contivesse descritores HTML. Esse programa simples irá inserir mecanicamente tais descritores na página gerada, e esta página distorcida será implantada nos navegadores de outros visitantes em vez da página normal. Um identificador que pode ser particularmente perigoso do ponto de vista da segurança de dados é o . Um cracker de segurança pode inserir o seguinte comentário:

Injeção de código JavaScript malicioso

Este tipo de ataque é conhecido como script entre sites ou XSS. Depois de fechar e abrir esta página, o navegador receberá esse identificador e começará imediatamente a carregar a página do site falso, em vez da página do site hackeado. Com um pouco de engenhosidade, um invasor de segurança de software pode explorar a confiança que os visitantes depositam em seu site para extrair tais informações. informações pessoais, como senhas ou números de cartão de crédito (usando phishing – falsificar o design e a estrutura de um site malicioso para parecer um site hackeado).

Solução problema semelhanteé que os dados de entrada devem ser pré-processados ​​para fins de segurança. Neste caso, é necessário converter quaisquer caracteres que tenham um significado especial para o navegador em algum formato seguro. Felizmente, o PHP tem uma maneira de fazer exatamente essa conversão. A função htmlentities() converte os caracteres , " e & em representações desses caracteres na forma das chamadas entidades de caracteres HTML (como



gastroguru 2017