kopia lustrzana https://github.com/glidernet/ogn-live
				
				
				
			Fixed SQL injection vulnerabilities by using PDO statements.
Not tested as I do not have a database schema and am too lazy to reverse engineer it.pull/11/head
							rodzic
							
								
									db210f3829
								
							
						
					
					
						commit
						6c7374c870
					
				|  | @ -0,0 +1,2 @@ | |||
| .idea | ||||
| config.php | ||||
							
								
								
									
										53
									
								
								index.php
								
								
								
								
							
							
						
						
									
										53
									
								
								index.php
								
								
								
								
							|  | @ -1,44 +1,47 @@ | |||
| <?php | ||||
| $link=""; | ||||
| require('sql.php'); | ||||
| ouvrebase(); | ||||
| 
 | ||||
| if (isset($_GET['rec']))  { $recc="'&r=".$_GET['rec']."'"; $reqc=" AND rec='".$_GET['rec']."'"; } else { $recc = "\"\""; $reqc=""; }  | ||||
| if (isset($_GET['pw']))  { $parc="'&p=".$_GET['pw']."'"; } else { $parc = "\"\""; } | ||||
| $q="select * from live where tim > 0"; | ||||
| 
 | ||||
| if (isset($_GET['rec'])) | ||||
| { | ||||
|     $recc="'&r=".$_GET['rec']."'"; | ||||
|     $q .=" AND rec=?"; | ||||
|     $params[] = $_GET['rec']; | ||||
| } | ||||
| else | ||||
| { | ||||
|     $recc = "\"\""; | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| $req="select * from live where tim > 0"; | ||||
| $req.=$reqc; | ||||
| if (isset($_GET['pw'])) | ||||
| { | ||||
|     $parc="'&p=".$_GET['pw']."'"; | ||||
| } | ||||
| else | ||||
| { | ||||
|     $parc = "\"\""; | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| $latmax=$latmin=$lonmax=$lonmin=0; | ||||
| 
 | ||||
| if (!$result=@mysql_query ($req)) | ||||
|   { | ||||
|   echo "<BR><BR><CENTER>Request error $req</CENTER><BR><BR>"; | ||||
|   @mysql_close($link); | ||||
|   exit(); | ||||
|   } | ||||
| $stmt = $dbh->prepare($q); | ||||
| $stmt->execute($params); | ||||
| 
 | ||||
| 
 | ||||
| if (@mysql_num_rows($result)==0) | ||||
|   { | ||||
| if ($stmt->columnCount() == 0) | ||||
| { | ||||
|     $latmax=60; | ||||
|     $latmin=35; | ||||
|     $lonmax=30; | ||||
|     $lonmin=-10; | ||||
|     $lon=2; | ||||
|     $lat=45; | ||||
| 
 | ||||
| 
 | ||||
|   } | ||||
| } | ||||
| else | ||||
|   { | ||||
| 
 | ||||
| { | ||||
|     $aa=0; | ||||
| 
 | ||||
|   while($ligne = @mysql_fetch_array($result)) | ||||
|     while($ligne = $stmt->fetch(PDO::FETCH_ASSOC)) | ||||
|     { | ||||
|         extract($ligne); | ||||
|         if ($aa==0) | ||||
|  | @ -55,7 +58,7 @@ else | |||
|             if ($lon<$lonmin) $lonmin=$lon; | ||||
|         } | ||||
|     } | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| echo "<!DOCTYPE html>
 | ||||
|  | @ -123,5 +126,3 @@ catch(e) { | |||
| </body> | ||||
| 
 | ||||
| </html>";
 | ||||
| @mysql_close($link); | ||||
| ?>
 | ||||
|  |  | |||
							
								
								
									
										30
									
								
								sql.php
								
								
								
								
							
							
						
						
									
										30
									
								
								sql.php
								
								
								
								
							|  | @ -1,23 +1,11 @@ | |||
| <?php | ||||
| function ouvrebase() | ||||
|   { | ||||
|   // **************** Connexion et ouverture de la base ************************
 | ||||
|   global $link; | ||||
|   //if (!($link = @mysql_connect( )))   // en local
 | ||||
|   if (!($link = @mysql_connect("****hostname****", "****username****", "****password****" )))   //
 | ||||
|     { | ||||
|     echo "<BR><BR><CENTER>Connection not possible</CENTER><BR><BR>"; | ||||
|     @mysql_close($link); | ||||
|     exit(); | ||||
|     } | ||||
| include 'config.php'; | ||||
| 
 | ||||
|   if (!(@mysql_select_db ("****databasename****",$link))) | ||||
|     { | ||||
|     echo "<BR><BR><CENTER>Database access not possible</CENTER><BR><BR>"; | ||||
|     @mysql_close($link); | ||||
|     exit(); | ||||
|     } | ||||
|   // ***************************************************************************
 | ||||
| 
 | ||||
|   } | ||||
| ?>
 | ||||
| try | ||||
| { | ||||
|     $dbh = new PDO($cfg['db_type'].':host='.$cfg['db_host'].';dbname='.$cfg['db_name'], $cfg['db_user'], $cfg['db_pass']); | ||||
|     $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); | ||||
| } | ||||
| catch (PDOException $e) { | ||||
|     echo 'Connection failed: ' . $e->getMessage(); | ||||
| } | ||||
|  |  | |||
		Ładowanie…
	
		Reference in New Issue
	
	 dbursem
						dbursem