|
31. 05. 2012. | #1 | |
novi član
Na probnom radu
Datum učlanjenja: 17.05.2012
Poruke: 18
Hvala: 4
0 "Hvala" u 0 poruka
|
Citat:
In many databases it is advisable to protect table and field names - for example with backticks in MySQL. Active Record queries are automatically protected, however if you need to manually protect an identifier you can use: Kôd:
$this->db->protect_identifiers('table_name'); |
|
28. 05. 2012. | #2 |
Wait, What?
Qualified
Datum učlanjenja: 21.03.2010
Poruke: 148
Hvala: 8
188 "Hvala" u 14 poruka
|
a nesto ovako da se stavlja addcslashes($value, "\x00\n\r\'\x1a\x3c\x3e\x25") ?
__________________
Svakog dana uvlacim linije pa misle da se drogiram. |
29. 05. 2012. | #3 | |
novi član
Na probnom radu
Datum učlanjenja: 17.05.2012
Poruke: 18
Hvala: 4
0 "Hvala" u 0 poruka
|
Ovako imam ponudjeno resenje od kolege ali nisam siguran dal je dobro.
Iako sam testirao AR u CI i radi, ipak bih dodao i mysql_real_escape_string() Kolega se dosetio i napravio svoju klasu koja nasledjuje Input klasu. I tu ce ubaciti ovu funkciju, pa ce obaviti validaciju jos u kontroleru. Ja sam do sad znao pravilo da se validacija i zastita od SQl napada vrsi pre samog upisa u bazu (znaci u model). A kolega kaze da nece da skodi i da ce ovako biti lakse. Zanima me koliko je dobar ovaj nacin, vrsenja validacije kroz input klasu...? (kako za CI primer ali i generalno) a to je ova klasa: http://codeigniter.com/user_guide/libraries/input.html Naravno imamo i ovde CI pravilo, pa je kolega uzeo Input klasu zbog toga... Citat:
Poslednja izmena od etelteam : 29. 05. 2012. u 21:10. |
|
30. 05. 2012. | #4 |
novi član
Na probnom radu
Datum učlanjenja: 17.05.2012
Poruke: 18
Hvala: 4
0 "Hvala" u 0 poruka
|
Evo sta se desava u Active Record Class u CI
Kôd:
/** * "Smart" Escape String * * Escapes data based on type * Sets boolean and null types * * @access public * @param string * @return mixed */ function escape($str) { if (is_string($str)) { $str = "'".$this->escape_str($str)."'"; } elseif (is_bool($str)) { $str = ($str === FALSE) ? 0 : 1; } elseif (is_null($str)) { $str = 'NULL'; } return $str; } Kôd:
/** * Escape String * * @access public * @param string * @param bool whether or not the string will be used in a LIKE condition * @return string */ function escape_str($str, $like = FALSE) { if (is_array($str)) { foreach ($str as $key => $val) { $str[$key] = $this->escape_str($val, $like); } return $str; } if (function_exists('mysqli_real_escape_string') AND is_object($this->conn_id)) { $str = mysqli_real_escape_string($this->conn_id, $str); } elseif (function_exists('mysql_escape_string')) { $str = mysql_escape_string($str); } else { $str = addslashes($str); } // escape LIKE condition wildcards if ($like === TRUE) { $str = str_replace(array('%', '_'), array('\\%', '\\_'), $str); } return $str; } |
31. 05. 2012. | #5 |
Ivan Dilber
Sir Write-a-Lot
|
mislim da se to odnosi na zastitu da slucajno ime polja nije neka rezervisana rec u SQL-u, npr. desava se da slucajno nazoves polje date ili timestamp. Ako ga stavis u backticks onda mozes da koristis kakav zelis naziv polja
__________________
Leadership is the art of getting people to want to do what you know must be done. |
|
|