Como configuro uma página da web de autodestruição?

0

Estou escrevendo um script de configuração para um servidor e preciso mostrar ao usuário os detalhes de login do servidor. Eles podem ser redirecionados automaticamente para uma página da web e eu não conheço nenhum outro detalhe.

Eu quero criar uma página temporária que contenha os detalhes de login, mas quando o usuário acessá-la, ela será excluída do disco e o servidor da Web será desligado.

Eu não me importo de instalar o python ou o perl ou algo assim, mas se isso pudesse ser feito em apenas sh isso seria ótimo.

Algum apontador?

    
por hifkanotiks 23.12.2014 / 10:19

3 respostas

0

Esta é uma solução que só precisa de bash e netcat (versão tradicional). Provavelmente é muito inseguro, mas para um usuário confiável, provavelmente funciona.

Coloque este script em webscript.sh .

#!/bin/bash

file="wantedfile.html"
host="localhost"

while [ true ]
do
  read a
  a='echo ${a} | sed 's/\r//''
  if [ "${a}" == "" ]
  then
    break
  fi
  command='echo ${a} | grep Host:'
  if [ "${command}" != "" ]
  then
    host='echo ${a} | awk '{ print $2 }''
  fi
done

len='ls -la ${file} | awk '{ print $5 }''
echo "HTTP/1.1 200 OK"
echo "Host: ${host}"
echo "Content-Length: ${len}"
echo ""
cat ${file}
rm ${file}

Então você só precisa usar o netcat:

nc.traditional -e 'webscript.sh' -l -p 80
    
por 23.12.2014 / 11:24
2

Você pode realmente gerar uma página web com um script de shell no diretório cgi-bin! Depois de criar a página da Web, o script pode excluir a si mesmo, desligar o servidor da Web, etc. (desde que tenha permissões).

    
por 23.12.2014 / 11:03
1

Você poderia escrever um pequeno daemon que verifica os logs e, quando essa página for acessada, desligar automaticamente o servidor.

Como alternativa, você poderia invocar um comando shell a partir de sua página que terá detalhes de login, em que essa página seria codificada? Se for PHP, por exemplo, você poderia invocar uma instrução shell_exec para parar o processo do servidor web e remover o arquivo.

    
por 23.12.2014 / 10:22