Não prometo deixar o seu sistema tão protegido quanto o [Tens de ter uma conta e sessão iniciada para poderes visualizar este link] mas, sem dúvida, você vai evitar que muita gente faça um estrago considerável no seu site...
Se você se identificar com algumas dessas medidas não saia correndo e se jogue da ponte… Faça os devidos ajustes e tudo ficará bem.
Cuidados com a URL – Parte I
Uma falha muito comum são aqueles hp que, tentando usar um sistema “legal”, acabam abusando da sorte… São sites que incluem o conteúdo (via include()) baseado em uma variável do método $_GET. Exemplo:
E na URL do site ficaria:
[Tens de ter uma conta e sessão iniciada para poderes visualizar este link]
Com isso o “invasor” pode, por exemplo, colocar um caminho de um script externo no lugar da variável:
[Tens de ter uma conta e sessão iniciada para poderes visualizar este link]
O seu site incluiria o arquivo normalmente e executaria tudo que existe dentro dele… O resto você já pode imaginar.
Evitar que isso aconteça é extremamente simples: é só criar um array contendo os nomes dos arquivos que poderão ser incluídos, dessa forma:
Demorei para arrumar os Bug´s do código , espero que tenham gostado :)
Créditos : sasuky ( postar )
Se você se identificar com algumas dessas medidas não saia correndo e se jogue da ponte… Faça os devidos ajustes e tudo ficará bem.
Cuidados com a URL – Parte I
Uma falha muito comum são aqueles hp que, tentando usar um sistema “legal”, acabam abusando da sorte… São sites que incluem o conteúdo (via include()) baseado em uma variável do método $_GET. Exemplo:
- Código:
<?php
// Verifica se a variável $_GET['pagina'] existe
if (isset($_GET['pagina'])) {
// Pega o valor da variável $_GET['pagina']
$arquivo = $_GET['pagina'];
} else {
// Se não existir variável, define um valor padrão
$arquivo = 'home.php';
}
include ($arquivo); // Inclui o arquivo
?>
E na URL do site ficaria:
[Tens de ter uma conta e sessão iniciada para poderes visualizar este link]
Com isso o “invasor” pode, por exemplo, colocar um caminho de um script externo no lugar da variável:
[Tens de ter uma conta e sessão iniciada para poderes visualizar este link]
O seu site incluiria o arquivo normalmente e executaria tudo que existe dentro dele… O resto você já pode imaginar.
Evitar que isso aconteça é extremamente simples: é só criar um array contendo os nomes dos arquivos que poderão ser incluídos, dessa forma:
- Código:
<?php
// Define uma lista com os arquivos que poderão ser chamados na URL
$permitidos = array('home.php', 'comunidade.php', 'home.php', 'staff.php');
// Verifica se a variável $_GET['pagina'] existe E se ela faz parte da lista de arquivos permitidos
if (isset($_GET['pagina']) AND (array_search($_GET['pagina'], $permitidos) !== false)) {
// Pega o valor da variável $_GET['pagina']
$arquivo = $_GET['pagina'];
} else {
// Se não existir variável $_GET ou ela não estiver na lista de permissões, define um valor padrão
$arquivo = 'home.php';
}
include ($arquivo); // Inclui o arquivo
?>
Demorei para arrumar os Bug´s do código , espero que tenham gostado :)
Créditos : sasuky ( postar )