Visualizzazione risultati 1 fino 8 di 8

Discussione: "403 Forbidden" Richieste Server to Server

  1. #1
    Guest

    Predefinito "403 Forbidden" Richieste Server to Server

    Salve, come da titolo vorrei segnalare un problema con le richieste Server to Server. In pratica ogni volta che faccio una richiesta esce l'errore 403 Forbidden. (Esempio: Warning: file_get_contents(http://ipecho.net/plain) [function.file-get-contents]) Ho già controllato nel pannello e le richieste senza restrizioni sono abilitate. (Script di test)

  2. #2
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,233

    Predefinito

    cURL ha la restrizione solo sulle porte 80, 8080 e 443. Non puoi utilizzare la connessione verso altre porte.
    Apprezzi l'aiuto? Offrimi un caffè!

  3. #3
    Guest

    Predefinito

    La funzione file_get_contents se non sbaglio utilizza la porta 80, inoltre il problema non si è verificato fin da subito, infatti prima funzionava senza problemi con il codice e le impostazioni invariate.

  4. #4
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,233

    Predefinito

    Te l'ho scritto perchè nel LOG veniva indicata una connessione verso una porta 81. Comunque puoi postare il tuo script così ci possiamo dare uno sguardo?
    Apprezzi l'aiuto? Offrimi un caffè!

  5. #5
    Guest

    Predefinito

    Eccolo
    Codice:
    <?php
    header("Access-Control-Allow-Origin: *");
    error_reporting(E_ALL);
    //accorciato
    $mysqli = new mysqli($hostname, $username, $password, $database);
    
    require_once "core.php";
    $url = "http://mastergames.forumcommunity.net";
    $mid = $mysqli->real_escape_string($_POST['mid']);
    $act = $_POST['action'];
    echo file_get_contents($url."/api.php?mid=".$mid);
    $data = json_decode(file_get_contents($url."/api.php?mid=".$mid));
    $groups = array("Amministratore", "NGG Admin", "NGG Manager", "Gfx Director", "NGG Mod", "GFX Skinner", "Chief Coder", "NGG Coder");
    $commands = array("/help", "/ban", "/pardon", "/assignpoints", "/cls", "/clsHistory");
    $definitions = array(
    	"Lista comandi e aiuto.",
    	"Banna un utente (/ban [uid] [motivazione] o /ban [motivazione] se sei nel profilo dell'utente)",
    	"Sbanna un utente (/pardon [uid] o /pardon se sei nel profilo dell'utente)",
    	"Assegna punti (/assignpoints [uid] [punti: valore negativo se desideri togliere punti])",
    	"Svuota la console",
    	"Svuota la cronologia dei comandi"
    	);
    $nick = $data->{"m".$mid}->nickname;
    echo $nick;
    $version = "0.3.3";
    $core = new ACPCore($nick);
    //if($nick == "Paralizer"){die("Accesso negato.");}
    print_r($core);
    print_r($nick);
    print_r($data);
    if(in_array($data->{"m".$mid}->group->name, $groups))
    { //Se l'utente in questione fa parte di uno di questi gruppi...
    	switch($act)
    	{
    		case "init":
    			$lastlogin = base64_decode(file_get_contents("lastlogin.txt"));
    			echo "AP System Console Administration v".$version."<br>";
    			echo "Ultimo accesso: {$lastlogin}<br><br>";
    			echo "Benvenuto ".$nick.", digita /help per la lista dei comandi.<br>";
    			//echo "<div id='cnewinput'>> </div>";
    			file_put_contents("lastlogin.txt", base64_encode($nick));
    		break;
    		
    		case "reinit":
    			$lastlogin = base64_decode(file_get_contents("lastlogin.txt"));
    			//accorciato
    		break;
    		
    		case "session_update":
    			$query = "SELECT * FROM ngg_ap_activeterminals WHERE nickname='{$nick}'";
    			$query = $mysqli->query($query)->num_rows;
    			$ctime = time();
    			
    			if($query == 0)
    			{
    				$query = "INSERT INTO ngg_ap_activeterminals VALUES(NULL, '{$nick}', '{$ctime}');";
    				$query = $mysqli->query($query);
    				
    				if($query)
    				{
    					echo "Sessione aggiornata.";
    				}
    				else
    				{
    					echo "Aggiornamento sessione fallito. (DB_ERR)";
    				}
    			}
    			else
    			{
    				echo "Nothing to do..";
    			}
    		break;
    		
    		case "session_delete":
    			$query = "DELETE FROM ngg_ap_activeterminals WHERE nickname='{$nick}';";
    			$query = $mysqli->query($query);
    			
    			if($query)
    			{
    				echo "Sessione cancellata.";
    			}
    			else
    			{
    				echo "Operazione di cancellamento sessione fallita.";
    			}
    		break;
    	
    		case "command":
    			if(isset($_POST['input']))
    			{
    				$input = $mysqli->real_escape_string($_POST['input']);
    				$params = explode(" ", $input);
    				
    				$params[0] = strtolower($params[0]);
    				switch($params[0])
    				{
    					case "/help":
    						echo "HotKeys:<br>Apri console - ALT + C<br>";
    						echo "<table style='text-align: left; margin: 0; padding: 0'>";
    						for($i = 0; $i<count($commands); $i++)
    						{
    							echo "<tr><td>".$commands[$i]."</td><td>".$definitions[$i]."</td></tr>";
    						}
    						echo "</table>";
    					break;
    					
    					case "/changelog":
    						echo file_get_contents("changelog.txt");
    					break;
    					
    					case "/ban":
    						if(count($params) == 3)
    						{
    							$uid = htmlspecialchars($mysqli->real_escape_string($params[1]));
    							$reason = htmlentities(htmlspecialchars($mysqli->real_escape_string($params[2])));
    							$bannedby = $nick;
    							
    							$query = "SELECT * FROM ngg_ap_blacklist WHERE uid='{$uid}';";
    							$query = $mysqli->query($query)->num_rows;
    							
    							if($query == 0)
    							{
    								$query = "INSERT INTO ngg_ap_blacklist VALUES(NULL, '{$uid}', '{$reason}', '{$bannedby}');";
    								$query = $mysqli->query($query);
    								
    								if($query)
    								{
    									echo "L'utente è stato messo in blacklist.";
    								}
    								else
    								{
    									echo "Operazione fallita. (DB_ERR)";
    								}
    							}
    							else
    							{
    								echo "L'utente è già in blacklist.";
    							}
    						}
    						else if(count($params) == 2 && isset($_POST['inprofile']))
    						{
    							$uid = $mysqli->real_escape_string($_POST['uid']);
    							if(!isset($uid) || !$uid)
    							{
    								die("Parametri invalidi.");
    							}
    							$reason = htmlentities(htmlspecialchars($mysqli->real_escape_string($params[1])));
    							$bannedby = $nick;
    							
    							$query = "SELECT * FROM ngg_ap_blacklist WHERE uid='{$uid}';";
    							$query = $mysqli->query($query)->num_rows;
    							
    							if($query == 0)
    							{
    								$query = "INSERT INTO ngg_ap_blacklist VALUES(NULL, '{$uid}', '{$reason}', '{$bannedby}');";
    								$query = $mysqli->query($query);
    								
    								if($query)
    								{
    									echo "L'utente è stato messo in blacklist.";
    								}
    								else
    								{
    									echo "Operazione fallita. (DB_ERR)";
    								}
    							}
    							else
    							{
    								echo "L'utente è già in blacklist.";
    							}
    						}
    						else
    						{
    							echo "Parametri invalidi.";
    						}
    					break;
    					
    					case "/assignpoints":
    						if(count($params) == 3 || (isset($_POST['inprofile']) && count($params) == 2))
    						{
    							$uid = $mysqli->real_escape_string($params[1]);
    							if(isset($_POST['inprofile']) && count($params) == 2)
    							{
    								$uid = $mysqli->real_escape_string($_POST['uid']);
    							}
    							$query = "SELECT * FROM ngg_ap_system WHERE uid='{$uid}';";
    							$query = $mysqli->query($query);
    							
    							if($query)
    							{
    								$numrows = $query->num_rows;
    								
    								if($numrows == 1)
    								{
    									$query = $query->fetch_array(MYSQLI_ASSOC);
    									$querycheck = "SELECT * FROM ngg_ap_blacklist WHERE uid='{$query['uid']}'";
    									$querycheck = $mysqli->query($query);
    									
    									$querycheck = $querycheck->num_rows;
    									
    									if($querycheck >= 1)
    									{
    										echo "L'utente è stato bannato dal sistema, per cui non è possibile eseguire quest'azione.";
    									}
    									else
    									{
    										$totpt = $query['points'] + $mysqli->real_escape_string((isset($_POST['inprofile']) ? $params[1] : $params[2]));
    										$query = "UPDATE ngg_ap_system SET points='{$totpt}' WHERE uid='{$uid}';";
    										$query = $mysqli->query($query);
    									
    										if($query)
    										{
    											echo "Punti aggiornati.";
    										}
    										else
    										{
    											echo "Operazione fallita. (DB_ERR)";
    										}
    									}
    								}
    								else
    								{
    									echo "L'utente non è stato trovato, aggiunta in corso.<br>";
    									$totpt = $mysqli->real_escape_string((isset($_POST['inprofile']) ? $params[1] : $params[2]));
    									$queryadd = "INSERT INTO ngg_ap_system VALUES(NULL, '{$uid}', '{$totpt}');";
    									$queryadd = $mysqli->query($queryadd);
    									
    									if($queryadd)
    									{
    										echo "Utente registrato.<br>Punti aggiunti.";
    									}
    									else
    									{
    										echo "Operazione fallita. (DB_ERR)";
    									}
    								}
    							}
    							else
    							{
    								echo "Ricerca utente fallita. (DB_ERR)";
    							}
    						}
    						else
    						{
    							echo "Parametri invalidi.";
    						}
    					break;
    					
    					case "/pardon":
    						if(count($params) == 2 || (count($params) == 1 && isset($_POST['inprofile'])))
    						{
    							$uid = $mysqli->real_escape_string($params[1]);
    							if(isset($_POST['inprofile']))
    							{
    								$uid = $mysqli->real_escape_string($_POST['uid']);
    							}
    							$query = "SELECT * FROM ngg_ap_blacklist WHERE uid='{$uid}'";
    							$query = $mysqli->query($query);
    							$query = $query->num_rows;
    							
    							if($query == 0)
    							{
    								echo "L'utente {$uid} non è in blacklist";
    							}
    							else
    							{
    								$query = "DELETE FROM ngg_ap_blacklist WHERE uid='{$uid}'";
    								$query = $mysqli->query($query);
    								
    								if($query)
    								{
    									echo "L'utente è stato rimosso dalla blacklist.";
    								}
    								else
    								{
    									echo "Operazione fallita.";
    								}
    							}
    						}
    						else
    						{
    							echo "Parametri invalidi.";
    						}
    					break;
    					
    					case "/show_sessions":
    						if($core->HavePermission("canViewSTable"))
    						{
    							$query = "SELECT * FROM ngg_ap_activeterminals";
    							$query = $mysqli->query($query);
    							$numrows = $query->num_rows;
    							
    							if($numrows != 0)
    							{
    								echo "<table style='text-align: left; margin: 0; padding: 0'><tr><td>ID</td><td>Nickname</td><td>Avviata</td></tr>";
    								for($i = 0; $i<$numrows; $i++)
    								{
    									$row = $query->fetch_row();
    									$id = $row[0];
    									$nick = $row[1];
    									$date = date("H:i", $row[2]);
    									
    									echo "<tr><td>{$id}</td><td>{$nick}</td><td>{$date}</td></tr>";
    								}
    								echo "</table>";
    							}
    							else
    							{
    								echo "Non ci sono sessioni attive.";
    							}
    						}
    						else
    						{
    							echo "Accesso negato.";
    						}
    					break;
    					
    					case "/transfer":
    						if(count($params) == 3)
    						{
    							$uid1 = $mysqli->real_escape_string($params[1]);
    							$uid2 = $mysqli->real_escape_string($params[2]);
    						}
    					break;
    					
    					default:
    						echo "Comando invalido.";
    					break;
    				}
    			}
    			else
    			{
    				echo "Errore interno.";
    			}
    		break;
    	
    		case "isAdmin":
    			echo "yes";
    		break;
    	}
    }
    else
    {
    	if($act == "isAdmin")
    	{
    		echo "no - ".$data->{"m".$mid}->nickname;
    	}
    	else
    	{
    		echo "access_denied";
    	}
    }
    ?>

  6. #6
    Guest

    Predefinito

    Chiedo scusa, ma non è stata ancora trovata una soluzione?

  7. #7
    L'avatar di Gianluca
    Gianluca non è connesso Amministratore
    Data registrazione
    15-02-2001
    Messaggi
    18,035

    Predefinito

    Abbiamo resettato lo status del tuo account, entro 1h la funzione s2s senza retrizioni dovrebbe tornare a funzionare normalmente
    Gianluca

  8. #8
    Guest

    Predefinito

    Chiedo l'eliminazione del post che riporta lo script php in quanto mi risulta di non avere i permessi per farlo.

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •