스스로 파괴되는 웹페이지를 설정하는 방법은 무엇입니까?

스스로 파괴되는 웹페이지를 설정하는 방법은 무엇입니까?

서버에 대한 설정 스크립트를 작성 중이며 사용자에게 서버의 로그인 세부 정보를 표시해야 합니다. 자동으로 웹페이지로 리디렉션될 수 있지만 다른 세부정보는 모르겠습니다.

로그인 세부 정보가 포함된 임시 웹 페이지를 만들고 싶지만 사용자가 해당 페이지에 액세스하면 디스크에서 삭제되고 웹 서버가 종료됩니다.

Python이나 Perl 등을 설치해도 괜찮지만, sh만으로 설치가 가능하면 좋을 것 같습니다.

어떤 충고?

답변1

실제로 cgi-bin 디렉토리에 있는 쉘 스크립트를 사용하여 웹 페이지를 생성할 수 있습니다! 웹 페이지를 생성한 후 스크립트는 자체 삭제, 웹 서버 종료 등을 할 수 있습니다(권한이 있는 경우).

답변2

로그를 확인하고 페이지를 클릭하면 자동으로 서버를 종료하는 작은 데몬을 작성할 수 있습니다.

또는 로그인 세부 정보가 포함된 페이지에서 쉘 명령을 호출할 수 있습니다. 페이지에서는 어떤 인코딩을 사용합니까? 예를 들어 PHP의 경우 shell_exec명령문을 호출하여 웹 서버 프로세스를 중지하고 파일을 삭제할 수 있습니다.

답변3

다음은 bash 및 netcat(레거시 버전)만 필요한 솔루션입니다. 실제로는 안전하지 않을 수 있지만 신뢰할 수 있는 사용자에게는 제대로 작동할 수 있습니다.

이 스크립트를 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}

그런 다음 netcat을 사용하면 됩니다.

nc.traditional -e 'webscript.sh' -l -p 80

관련 정보