block-whoops-env.sh 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. #!/bin/bash
  2. check()
  3. {
  4. dir=$(pwd)
  5. if [[ ! -e "${dir}/vendor/filp/whoops/src/Whoops/Handler/PrettyPageHandler.php" ]];then
  6. echo -e "\033[31m Please execute [composer install] first. \033[0m"
  7. exit
  8. fi
  9. file="${dir}/vendor/filp/whoops/src/Whoops/Handler/PrettyPageHandler.php"
  10. }
  11. getline()
  12. {
  13. del_line=$(cat -n ${file} | grep "PHP_AUTH_PW" | awk '{print $1}')
  14. sed -i "${del_line}d" $file
  15. line=$(cat -n ${file} | grep "blacklist php provided auth based values" | awk '{print $1}')
  16. line=$(expr ${line} + 2)
  17. }
  18. backup()
  19. {
  20. cp -f ${file} ${dir}/vendor/filp/whoops/src/Whoops/Handler/PrettyPageHandler.php.bak
  21. }
  22. run()
  23. {
  24. list='key baseUrl db_host db_database db_username db_password muKey telegram_token telegram_request_token cloudflare_email cloudflare_key cloudflare_name sentry_dsn github_access_token pwdMethod salt'
  25. for key in $list
  26. do
  27. sed -i "${line}i \ \ \ \ \ \ \ \ \$this->blacklist('_ENV', '${key}');" ${file}
  28. done
  29. masked_line=$(cat -n ${file} | grep "str_repeat" | awk '{print $1}')
  30. masked_line=$(expr ${masked_line} + 2)
  31. sed -i "${masked_line}i \ \ \ \ \ \ \ \ \ \ \ \ \}" ${file}
  32. sed -i "${masked_line}i \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \$values[\$key] = '*';" ${file}
  33. sed -i "${masked_line}i \ \ \ \ \ \ \ \ \ \ \ \ \if (is_array(\$superGlobal[\$key])) {" ${file}
  34. }
  35. tip()
  36. {
  37. echo -e "\033[31m Important environment configuration has been blocked, but please note that even so, it is still very dangerous to open debug mode in the production environment, please close it in time. \033[0m"
  38. }
  39. recover()
  40. {
  41. check
  42. cp -f ${dir}/vendor/filp/whoops/src/Whoops/Handler/PrettyPageHandler.php.bak ${file}
  43. echo -e "\033[32m Whoops has been restored to the original file. \033[0m"
  44. }
  45. main()
  46. {
  47. check
  48. getline
  49. backup
  50. run
  51. tip
  52. }
  53. if [[ $1 != "recover" ]];then
  54. main
  55. else
  56. recover
  57. fi