1mher3 Posted October 7, 2008 Author Report Share Posted October 7, 2008 (edited) Aleksejs, neņem ļaunā, bet man šķita ka tas būtu pašsaprotami, ne jau datubāze "zina", bet php kods, salīdzinot ierakstus dažādās tabulās un/vai datu bāzēs, izskaitļotu ka parole nav nomainīta izmantojot linku, ja datubāzē nebūtu atbilstošs ieraksts ar paroles maiņas pieprasījuma kodu un statusu "apstiprināts". Edited October 7, 2008 by 1mher3 Link to comment Share on other sites More sharing options...
Aleksejs Posted October 7, 2008 Report Share Posted October 7, 2008 Tieši tajā apstāklī, ka DB "nezina" arī slēpjas tā sāpe. Pieliekot šādus apstiprinājuma kodus utt netiek pēc būtības risināta problēma par DB aizsardzību (tas gan nenozīmē, ka šādi kodi būtu nevajadzīgi, vienkārši tie risina citu problēmu - realizē aplikācijas loģiku). Faktiski, ja esmu pareizi tevi sapratis, tad Tu vēlies izveidot Datubāzes datu integritātes pārbaudi (kur ar integritāti šajā brīdī tiek saprasta tieši datu atbilstība, vai neatbilstība aplikācijas loģikas prasībām). Tā neapšaubāmi ir vērtīga lieta, jo realizē vienu daļu no jebkura drošības risinājuma nepieciešamajām funkcijām: Protection (aizsardzības līdzekļi), Detection (drošības pārkāpumu atklāšana), Action (pasākumu kopums, kas tiek veikts pārkāpuma atklāšanas gadījumā). Taču tā nerisina Protection daļu. Link to comment Share on other sites More sharing options...
Zandis Murāns Posted October 8, 2008 Report Share Posted October 8, 2008 Es, protams, nelasīju visu spamu, bet man īsti nav skaidrs, kā tu to iedomājies. Tipa hakeris būs ticis klāt tavai datubāzei un tavam php skriptam, savukārt tur ieraudzīs visādus mainīgos un tabulu nosaukumus ar neloģiskiem nosaukumiem, un pie sevis nospriedīs: njā, veči, šito mums neatkost :( Tā? Link to comment Share on other sites More sharing options...
v3rb0 Posted October 8, 2008 Report Share Posted October 8, 2008 sauciet datubāzē tabulas un laukus garos vārdos, bet igauniski, pats vells kājas izmežģīs lai ko tur atkostu! (: Link to comment Share on other sites More sharing options...
Klez Posted October 8, 2008 Report Share Posted October 8, 2008 (edited) var arī php piemeeram funkcijas rakstīt latviski.. function drukāt_kļūda($kļūdziņojums) { echo $kļūdziņojums; } drukāt_kļūda('superkljuuda'); un jau ljaunajam hakerim buus gruuti saprast kas tajaa skriptaa ir rakstiits. tā pat arī ar datu bāzēm un tabulām ... Edited October 8, 2008 by Klez Link to comment Share on other sites More sharing options...
Roze Posted October 8, 2008 Report Share Posted October 8, 2008 Tagad google māk tulkot arī latviski, so tas vairs nestrādās .. sorry par offtopic. Bet ja nopietni, keywordi varētu būt 'hardened php', 'php taint' .. proti lai arī protams DB lietotāju izveidei un sistēmai ir jāpievērš uzmanība, tad faktiski vienmēr visas ķeskas ir "dinamiskajā" galā, proti php.. Ja jau tu reiz php iedot lietotāju un piekļuvi DB tad tas nozīmē, ka caur to teoretiski piekļūt citi :) Link to comment Share on other sites More sharing options...
Klez Posted October 8, 2008 Report Share Posted October 8, 2008 piekrītu rozei a par to guugli ,,, nu taa ir vesala anekdote ... :) vakar seedeeju ebay.de un panjeemu googles paliidziibu ... traks var palikt :) reku var pasmieties a par lietu.. manupraat lielaakai daljai droshiibu jaanodroshina serverim. respektiivi lai nav caurumains apacis un ugunssiena. un ja veel apaci stiprina ar mod_security + virtuaalos hostus pareizi izveido (ierobežot php [un ne obligāti safe_mode]) un protams lai php skripts pats nav caurumains :) ja ir caurumains php tad galvenais lai urķis netiek taalaak par konkreeto hostu .. :) esmu kaut ko dzirdeejis par apache shell bet neko praatiigu netaa neatradu (kaadu paraugu vai aprakstu) Link to comment Share on other sites More sharing options...
Grey_Wolf Posted October 8, 2008 Report Share Posted October 8, 2008 reku var pasmieties nevajag jau Googli --> dazaa labaa LV saitaa ir Tas pats .. pat vel trakaak ;) Link to comment Share on other sites More sharing options...
Java Posted October 9, 2008 Report Share Posted October 9, 2008 reku var pasmieties Labs: Pārdevējs InformācijaPārdevējs: oko68 Ratings: 99,8 99,8 % Pozitīva Loceklis: Vācijā kopš 24.07.02 Reģistrēts kā biznesa pārdevēju Link to comment Share on other sites More sharing options...
1mher3 Posted October 9, 2008 Author Report Share Posted October 9, 2008 Aleksejs, jā, tāda bij tā doma. ... Šodien programmēju un pārprogrammēju, ievērojot jūsu ieteikumus... apmēram stundu atpakaļ atdūros pret problēmu, ar datubāzes useru privilēģijām, nu nekādi nevaru izfunktierēt kur vaina... uztaisīju 3 userus attiecīgi ar privilēģijām pirmais - tikai SELECT; otrais - tikai INSERT; trešais - tikai UPDATE, pirmais un otrais smuki strādā, bet trešais, lai gan ir ar UPDATE atļauju, nestrādā (pēc sciptu izpildes datu bāzē ieraksts netiek izmainīts). 10 reizes gāju curi visam kodam cerēdams ieraudzīt kādu kļūdu, neatradu. Tad ienāca prātā ka ar "UPDATE" privilēģiju varētu kautkas nebūt kārtībā. Pārbaudes nolūkā trešajam useram uzliku "all permissions" un viss strādā... bet tā nevaru atstāt. Ko vēl bez UPDATE atļaujas ir jāatķeksē lai useram būtu tiesības tikai izmainīt ierakstus? Link to comment Share on other sites More sharing options...
bubu Posted October 9, 2008 Report Share Posted October 9, 2008 Tu kļūdu pārbaudīji, ko UPDATE kverijs atgriež? T.i. ko mysql_error uz to UPDATE saka? Link to comment Share on other sites More sharing options...
Grey_Wolf Posted October 10, 2008 Report Share Posted October 10, 2008 uztaisīju 3 userus attiecīgi ar privilēģijām pirmais - tikai SELECT; otrais - tikai INSERT; trešais - tikai UPDATE, no 3 useriem nav jegas ... Jega ir no 2 ... 1. kam ir SELECT , UPDATE , INSERT --> tb web lapas useris 2. kam ir all privilgijas --> DB admins ... -- nu ja teiksim ir saits kur useri neko nevar pievienot, tad 1 uzliec tikai SELECT doma ir taada ka web saita userim ir tikai taas privilegijas, bez kuram saits nevar funkcionet ... --- Peec sada principa DB userus veido lielakaa dalja no normaliem Web hostetajiem ... P.S. + ja netiek izmantots, tad var vel norubiit sheel --> tb aizliekt no Web izpildiit Jebkadu areejo/iekseejo programmu ... kaa arii --> vienmer sekot liidzi izmantojamo programmu BUG reportam, lai laiciigi varetu aizvert pamaniitos caurumus ... --- Ja pats nehosteesi uz sava servera, tad nevajag iesprinkt ar tiem DB useriem ... veidojot lapu izmanto tikai vienu .... kad uzliksi uz Hosta tad paluudz lai tiktu izveidoti tie 2 useri ... (piem. DEAC to izdariis defolt. ) Link to comment Share on other sites More sharing options...
Aleksejs Posted October 10, 2008 Report Share Posted October 10, 2008 No vairākiem useriem ir gan jēga, bet ne tādā veidā, ka vienam atļauts INSERT otram SELECT trešajam DELETE. Jēga ir tad, ja ir izveidotas storētās procedūras/funkcijas kurām un vienīgi kurām ir atļauta pieeja attiecīgajam lietotājaam. Nekādu SQL vaicājumu pa taisno tabulās. MySQL ļauj izveidot funkciju/procedūru, kas izpildās ar izveidotāja privilēģijām, šī lieta ļauj nedot lietotājam vispār nekādas pieejas tiesības konkrētajai tabulai, un piekļuvi nodrošināt tikai caur procedūru. Tomēr šāda pieeja būs grūtāk sarunājama ar hostētāju. Link to comment Share on other sites More sharing options...
Java Posted October 10, 2008 Report Share Posted October 10, 2008 Kam rūp ko sarunāt ar hostētāju! Ja nevajag klientus, tad ir cita problēma... Link to comment Share on other sites More sharing options...
Aleksejs Posted October 10, 2008 Report Share Posted October 10, 2008 Vēl viens labs raksts par drošu PHP programmēšanu: http://www.ibm.com/developerworks/opensour...apps/index.html Link to comment Share on other sites More sharing options...
Recommended Posts