![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 56 Pomógł: 0 Dołączył: 27.10.2015 Ostrzeżenie: (0%) ![]() ![]() |
Korzystam na stronie z systemu newsów phpns:
http://sourceforge.net/projects/phpns/ Do samych newsów system spisuje się dobrze, ale chciałbym włączyć komentarze pod newsami i nie jestem pewny co do bezpieczeństwa. Phpns nie wykorzystuje bowiem PDO tylko zwykły MySQL do operacji na bazach danych. Ma co prawda jakieś zabezpieczenia: Kod $new_res = general_query('INSERT INTO '.$databaseinfo['prefix'].'articles (article_title, article_subtitle, article_author, article_cat, article_text, article_exptext, article_imgid, allow_comments, start_date, end_date, active, approved, timestamp, ip) VALUES ("'.$data['article_title'].'", "'.$data['article_subtitle'].'", "'.$author.'", "'.$data['article_cat'].'", "'.$data['article_text'].'", "'.$data['article_exptext'].'", "http://'.$globalvars['path_to_uri'].'/'.$data['image'].'", "'.$data['acchecked'].'", "'.$unixtime['start']['unix'].'", "'.$unixtime['end']['unix'].'", "'.$data['achecked'].'", "'.$data['approved'].'", "'.$globalvars['time'].'", "'.$news_ip.'");'); Następnie w funkcji general_query() wywoływana jest funkcja clean_data(), która jak sądzę (może błędnie?) jest jakimś zabezpieczeniem: Kod function general_query($query,$array=FALSE) { //for simple/misc queries if ($clean == TRUE) { $query = clean_data($query); //clean } $res = mysql_query($query) or die('<p><textarea style="width: 50%; height: 200px;">FAILED QUERY: '.$query.' '.mysql_error().'</textarea></p>'); //return value or not? if ($array == TRUE) { //if we want a value $value = mysql_fetch_array($res); return $value; } else { return $res; } } Funkcja clean_data() ma taką definicję: Kod function clean_data($data) { if (is_array($data)) { foreach ($data as $key => $value) { if(ini_get('magic_quotes_gpc')) { $data[$key] = stripslashes($value); } $data[$key] = htmlspecialchars($value, ENT_QUOTES); } } else { if(ini_get('magic_quotes_gpc')) { $data = stripslashes($data); } $data = htmlspecialchars($data, ENT_QUOTES); } return $data; } Czy Waszym zdaniem takie zabezpieczenia starczą, żeby np. ktoś nie skasował mi całej bazy danych? A może jedynym wyjściem będzie przejście np. na Wordpress (który pewnie korzysta z PDO)? |
|
|
![]() ![]() |
![]() |
Aktualny czas: 3.10.2025 - 09:19 |