![]() |
![]() |
![]()
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)? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Przeciez ten warunek:
if ($clean == TRUE) { $query = clean_data($query); //clean } nigdy nie jest spelniony. A nawet jakby byl to by clean_data() robila cuda na kiju a nie zabezpieczala zapytanie w formie w jakiej masz...
Powód edycji: [nospor]:
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 56 Pomógł: 0 Dołączył: 27.10.2015 Ostrzeżenie: (0%) ![]() ![]() |
Zakładając więc, że phpns nie jest zbyt bezpieczny jeżeli chodzi o pisanie komentarzy, bezpieczniejszym rozwiązaniem wydaje się skorzystanie z jakiegoś zewnętrznego systemu komentarzy (pewnie wybrałbym Disqus). Dodam, że u mnie na stronie sprawa będzie trochę bardziej złożona, ponieważ będę chciał wdrożyć forum i shoutbox:
Temat: Wstawienie forum w subdomene a shoutbox na strone glowna i chciałbym, żeby użytkownik mógł z jednego konta pisać na forum, w shouboxie i właśnie komentarze pod newsami. Widzę więc w tej chwili zasadniczo dwa rozwiązania: 1) Wordpress (newsy) + Disqus (komentarze) + phpBB* (forum i shoutbox) 2) Phpns (newsy) + Disqus (komentarze) + phpBB* (forum i shoutbox) 1) rozwiązanie jest o tyle lepsze, że łatwiej będzie pewnie znaleźć jakieś pluginy/mosty integrujące te trzy systemy (każdy z nich jest popularny), natomiast jest taka kwestia, że mam już na stronie newsy w phpns (na razie bez komentarzy) i jeżeli chciałbym przejść z Phpns na Wordpress to musiałbym pewnie napisać skrypt, który przeniesie zawartość tabeli przechowującej newsy w phpns do tabeli przechowujące newsy w Wordpressie. I tak się właśnie zastanawiam, że może nie byłoby to aż takie ciężkie do napisania? Wydaje mi się nawet prawdopodobne, że byłoby łatwiej napisać coś takiego, niż samemu zintegrować Phpns z Disqus i phpBB gdybym wybrał 2) rozwiązanie (bo pewnie nie istnieją żadne oficjalne pluginy integrujące to - Phpns to dość mało znany system, co więcej już chyba nie rozwijany)? Priorytetem jest dla mnie, żeby to w miarę szybko zaimplementować, żebym nie musiał nad tym siedzieć dwa miesiące (IMG:style_emoticons/default/smile.gif) *na ten moment wybrałbym phpBB, ale się przy nim nie upieram. Może wybiorę któryś z tych: SMF 2, MyBB, XenForo lub IPB. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 15.09.2025 - 04:51 |