3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

皆さん、どうにも遠慮がちですね。
サクッと💩置きますよ。

<?php
	if(isset($_SERVER['DEVELOP'])){
		define ("DEVELOP" , "true");
		error_reporting(0); 
	}else{
		define ("DEVELOP" , "false");
		error_reporting(E_ALL & ~E_DEPRECATED); 
	}

	if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])){
		$_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_X_FORWARDED_FOR'];
	}


if(strpos($_SERVER["REQUEST_URI"],"/アドミソ/")===0){
	 if($_SERVER['HTTP_X_FORWARDED_FOR']==="xxx.xxx.xxx.xxx, yyy.yyy.yyy.yyy"){
	 }else{
	 	die("error");
	 }
}else{
	ini_set( "session.gc_maxlifetime", 172800 );
	session_cache_expire(36000);
	session_start();

}
//}

?>
<?php // end

頭の天辺からつま先まで余すことなく全部ブリブリブリブリュリュリュリュリュリュ!!!!!!ブツチチブブブチチチチブリリイリブブブブゥゥゥゥッッッ!!!!!!!

と言っていても仕方がないから、炊き上げていく。

お焚き上げポイント

  • インデントを適切に行う
  • 不要なコメントやコードの除外を行う
  • DEVELOPは多分環境変数なんだろうからgetenv()にする
  • 真偽値文字列を真偽値にする
  • 開発中ではエラーを出力する
  • REMOTE_ADDRを上書きしない
  • 条件分岐の可読性を上げる
  • 許可するIPのロジックを見つめ直す
  • セッションが煉獄長寿郎
  • てか、php.iniに書け

俺はDEVELOPがどう使われてるのか知りたい

探してみる

grep -r "DEVELOP"
/path/xxx/yyy.conf:#	setENV DEVELOP "true"

なるほど。apacheのsetEnvを利用して開発モードとしているのな。define :relaxed:

じゃあ...
イクゾ!!!!!!!!

<?php
session_start();

const ADMIN_PATH = '/アドミソ/';
const ALLOWED_IPS = ['xxx.xxxx.xxx.xxx', 'yyy.yyy.yyy.yyy'];

$isDevelop = filter_var(getenv('DEVELOP'), FILTER_VALIDATE_BOOLEAN);
if ($isDevelop) {
	error_reporting(E_ALL);
	ini_set('display_errors', 1);
} else {
	error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED);
	ini_set('display_errors', '0');
	ini_set('log_errors', '1');
	ini_set('error_log', '/path/php-error.log');
}

$remoteAddr = trim(explode(',', $_SERVER['HTTP_X_FORWARDED_FOR'])[0]);
if (str_contains($_SERVER['REQUEST_URI'], ADMIN_PATH) && !in_array($remoteAddr, ALLOWED_AIPS, true)) {
	http_response_code(403);
	header('Content-Type: text/plain; charset=UTF-8');
	die('403 Forbidden: Your IP is not allowed.');
}

労力をかけることなく、それなりに親切なコードになったのではないでしょうか。
以上でお焚き上げ完了です。

世の中にはまだまだ古くから働いてきたコード達が潜んでいます。
年に一度は遭遇します。見かけたら感謝の意を込めて汚れを拭き取って行く活動を継続して行っていきたいものです。

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?