22define ('HESTIA_CMD ' , '/usr/bin/sudo /usr/local/hestia/bin/ ' );
33//die("Error: Disabled");
44
5+ function check_local_ip ($ addr ){
6+ if (in_array ($ addr , array ($ _SERVER ['SERVER_ADDR ' ], '127.0.0.1 ' ))){
7+ return true ;
8+ }else {
9+ return false ;
10+ }
11+ }
12+
513function get_real_user_ip (){
614 $ ip = $ _SERVER ['REMOTE_ADDR ' ];
7- if (isset ($ _SERVER ['HTTP_CLIENT_IP ' ])){
15+ if (isset ($ _SERVER ['HTTP_CLIENT_IP ' ]) && !check_local_ip ($ _SERVER ['HTTP_CLIENT_IP ' ])) {
16+ if (filter_var ($ _SERVER ['HTTP_CLIENT_IP ' ], FILTER_VALIDATE_IP )){
817 $ ip = $ _SERVER ['HTTP_CLIENT_IP ' ];
18+ }
919 }
10- if (isset ($ _SERVER ['HTTP_X_FORWARDED_FOR ' ])){
20+
21+ if (isset ($ _SERVER ['HTTP_X_FORWARDED_FOR ' ]) && !check_local_ip ($ _SERVER ['HTTP_X_FORWARDED_FOR ' ])) {
1122 if (filter_var ($ _SERVER ['HTTP_X_FORWARDED_FOR ' ], FILTER_VALIDATE_IP )){
1223 $ ip = $ _SERVER ['HTTP_X_FORWARDED_FOR ' ];
1324 }
1425 }
15- if (isset ($ _SERVER ['HTTP_FORWARDED_FOR ' ])){
26+
27+ if (isset ($ _SERVER ['HTTP_FORWARDED_FOR ' ]) && !check_local_ip ($ _SERVER ['HTTP_FORWARDED_FOR ' ])) {
1628 if (filter_var ($ _SERVER ['HTTP_FORWARDED_FOR ' ], FILTER_VALIDATE_IP )){
1729 $ ip = $ _SERVER ['HTTP_FORWARDED_FOR ' ];
1830 }
1931 }
20- if (isset ($ _SERVER ['HTTP_X_FORWARDED ' ])){
32+
33+ if (isset ($ _SERVER ['HTTP_X_FORWARDED ' ]) && !check_local_ip ($ _SERVER ['HTTP_X_FORWARDED ' ])) {
2134 if (filter_var ($ _SERVER ['HTTP_X_FORWARDED ' ], FILTER_VALIDATE_IP )){
2235 $ ip = $ _SERVER ['HTTP_X_FORWARDED ' ];
2336 }
2437 }
25- if (isset ($ _SERVER ['HTTP_FORWARDED ' ])){
38+
39+ if (isset ($ _SERVER ['HTTP_FORWARDED ' ]) && !check_local_ip ($ _SERVER ['HTTP_FORWARDED ' ])) {
2640 if (filter_var ($ _SERVER ['HTTP_FORWARDED ' ], FILTER_VALIDATE_IP )){
2741 $ ip = $ _SERVER ['HTTP_FORWARDED ' ];
2842 }
2943 }
30- if (isset ($ _SERVER ['HTTP_CF_CONNECTING_IP ' ])){
31- if (!empty ($ _SERVER ['HTTP_CF_CONNECTING_IP ' ])){
32- if (filter_var ($ _SERVER ['HTTP_FORWARDED ' ], FILTER_VALIDATE_IP )){
33- $ ip = $ _SERVER ['HTTP_CF_CONNECTING_IP ' ];
34- }
44+
45+ if (isset ($ _SERVER ['HTTP_CF_CONNECTING_IP ' ]) && !check_local_ip ($ _SERVER ['HTTP_CF_CONNECTING_IP ' ])) {
46+ if (filter_var ($ _SERVER ['HTTP_CF_CONNECTING_IP ' ], FILTER_VALIDATE_IP )){
47+ $ ip = $ _SERVER ['HTTP_CF_CONNECTING_IP ' ];
3548 }
3649 }
3750 return $ ip ;
@@ -47,7 +60,7 @@ function api($hst_hash, $hst_user, $hst_password, $hst_returncode, $hst_cmd, $hs
4760 }
4861 if ( $ settings ['config ' ]['API_ALLOWED_IP ' ] != 'allow-all ' ){
4962 $ ip_list = explode (', ' ,$ settings ['config ' ]['API_ALLOWED_IP ' ]);
50- $ ip_list [] = '127.0.0.1 ' ;
63+ $ ip_list [] = '' ;
5164 if ( !in_array (get_real_user_ip (), $ ip_list )){
5265 echo 'Error: IP is not allowed to connect with API ' ;
5366 exit ;
0 commit comments