Fabos
				Новичок
				
				Дата регистрации:
05.11.2012 11:50:32
				Сообщений: 8
			 
			Высмотрел на одной из cms.
											$arguments = array('username'=>$una);				                            $result = $db->Query("INSERT INTO ... VALUES ('{username}')", $arguments);
В чем плюс такого способа, инъекции тд. Как по защите, лучше?
			
			
		 
			
			
			
				
				
				Admin
				Администратор
				
				Дата регистрации:
27.05.2010 21:23:42
				Сообщений: 3063
			 
			Это совершенно бессмысленный отрывок. Что за $db? Что за метод Query(), что внутри этого метода?
			
			
		 
			
			
			
				
				
				Fabos
				Новичок
				
				Дата регистрации:
05.11.2012 11:50:32
				Сообщений: 8
			 
			$db-подключение к бд.
public function Query($sql, $data = array()) {
		$sql = $this->query_process($sql, $data);
		$this->count_query++;
		$this->ResetError();
		$this->sql = $sql;
		$xtime = microtime();
		$this->result = @mysql_query($this->sql, $this->mysql_link);
		// start the analysis
		if (TRUE === $this->result) {   // simply result
			$return = TRUE;         // successfully (for example: INSERT INTO ...)
		} else if (FALSE === $this->result) {
			$this->SetError();
			$return = FALSE;        // error occured (for example: syntax error)
		}
		else // complex result
		{
			$num_result = mysql_num_rows($this->result);
			switch( $num_result )
			{
				case 0:
					$return = NULL; // return NULL rows
					break;
				case 1: // return one row ...
					if(1 != mysql_num_fields( $this->result))
					{
						$return = array();
						while( $obj = mysql_fetch_object($this->result)) array_push($return, $obj);
					}
					else
					{
						$row    = mysql_fetch_row($this->result);       // or as single value
						$return = $row[0];
					}
					break;
				default:
					$return = array();
					while( $obj = mysql_fetch_object($this->result)) array_push($return, $obj);
			}
		}
		$ytime = microtime();
		$this->delta += array_sum(explode(' ',$ytime)) - array_sum(explode(' ',$xtime));
		return $return;
	}
 
			
			
		 
			
			
			
				
				
				Admin
				Администратор
				
				Дата регистрации:
27.05.2010 21:23:42
				Сообщений: 3063
			 
			Здесь нет плюсов, это просто более удобный способ отправки запросов к базе данных. Самый обычный фреймворк. Никакой защиты я здесь не увидел, но она должна быть, возможно, в других методах данного класса.
			
			
		 
			
			
			
				
				
				Fabos
				Новичок
				
				Дата регистрации:
05.11.2012 11:50:32
				Сообщений: 8
			 
			Не по теме...
Инъекции
Проверяю присланные посты($_POST..), на содержание того чего должны содержать. Как еще можно сделать инъекцию, обойти эту проверку?
			
			
		 
			
			
			
				
				
				Admin
				Администратор
				
				Дата регистрации:
27.05.2010 21:23:42
				Сообщений: 3063
			 
			htmlspecialchars() используйте, и уже 99% проблем уйдут. А если Вы ещё будете проверять корректность данных через регулярные выражения, то будет ещё лучше.
			
			
		 
			
			
			
				
				
				Fabos
				Новичок
				
				Дата регистрации:
05.11.2012 11:50:32
				Сообщений: 8
			 
			Спасибо.