Java Posted October 7, 2008 Report Share Posted October 7, 2008 Tāpēc lietojiet Java - tur integer ir integer un string ir string! Lai visiem viss saprotams. Link to comment Share on other sites More sharing options...
1mher3 Posted October 7, 2008 Author Report Share Posted October 7, 2008 (edited) Pāris lietas, ko nepamanīju pieminam.Sadalīt datubāzes lietotāju lomas pa tādiem lietotājiem, kā skatītājs, rakstītājs dzēsējs utt. Datubāzei slēgties klāt tikai ar šiem lietotājiem. ja saprotu pareizi, piemēram, login formas pārbaudei/apstiprināšānai man vajag izmantot: 1 - datu nolasīšanai - lietotāju A (tikai SELECT) 2 - login datuma atjaunošanai - lietotāju B (tikai UPDATE) 3 - nepareiza login piefiksēšanai - lietotāju C (tikai INSERT) tas ko es neizprotu - kāds ieguvums drošības ziņā ir 3 dažādu useru izmantošanai salīdzinājumā ar vienu kuram tiesības gan SELECT, INSERT, UPDATE? Šiem lietotājiem atļaut izpildīt tikai konkrētas saglabātās procedūras (mysql gadījumā šis).Neatļaut šiem lietotājiem izpildīt nekādas citas darbības pa tiešo ar tabulām, bet visu funkcionalitāti realizēt tikai ar iepriekšdefinētajām funkcijām. kas jādara lai to realizētu? Edited October 7, 2008 by 1mher3 Link to comment Share on other sites More sharing options...
Klez Posted October 7, 2008 Report Share Posted October 7, 2008 (edited) 1mher3, ieguvums ir taads, ja ļaunais hakeris dabuun tavu treshu lietotaaju (INSERT) vinsh nevar nolasiit tabulas datus (redzeet kas tur staav iekshaa) ja vinsh dabuu pirmo (SELECT) vinsh redz kas tur ir, bet nevar pievienot jaunu (adminu piem) utt .... te veel aizgaaja par to ka savaa funkcijaa izmantot jau iebuuveetu funkciju piem: function isValidFileName($file) { /* don't allow .. and allow any "word" character \ / */ return preg_match('/^(((?:\.)(?!\.))|\w)+$/', $file); } sanaak iisaak rakstiit un ja vajag kaut ko pielabot, jaalabo tikai vienaa vietaa ... un gadiijumaa ja vajag tad to paarbaudi (funkciju) var paarrakstiit Edited October 7, 2008 by Klez Link to comment Share on other sites More sharing options...
Aleksejs Posted October 7, 2008 Report Share Posted October 7, 2008 Ideja ir tāda, ka lietotājam A vispār nedot tiesības SELECT,UPDATE vai DELETE pa taisno tabulā, bet gan nodefinēt storēto procedūru MySQLā (arī citās DB līdzīgi): Tātad nevis ļaujam lietotājam A veikt SELECT * FROM zinas, bet gan: mysql> delimiter // mysql> CREATE PROCEDURE radit_zinas -> BEGIN -> SELECT * FROM zinas; -> END; -> // Un attiecīgi datubāzes piekļuves tiesībās ierakstīt, ka lietotājam A ir tiesības izpildīt procedūru radit_zinas, bet nevis brīvi izvēlētus SQL vaicājumus. Tāda tā pamatdoma. Link to comment Share on other sites More sharing options...
1mher3 Posted October 7, 2008 Author Report Share Posted October 7, 2008 nutiko radās šāda ideja: izmantot divas datubāzes - primāro on alternatīvo kurā tiek dublēti svarīgākie dati. otrajai datubāzei piesaistīt userus tikai ar tiesībām SELECT un INSERT. un uzrakstīt funkciju kura salīdzina un brēc ja ieraksti nesakrīt. tas kaut ko jēdzīgu drošības ziņā dotu? Link to comment Share on other sites More sharing options...
Java Posted October 7, 2008 Report Share Posted October 7, 2008 Tu domā datubāzes BACKUP? Nu jā, tas nav nekas jauns un tiešām drošības ziņā tā ir drošāk - tik tiem datiem vajadzētu glabāties, kur citur, jo BACKUP ideja ir rezerves kopijas principā! Atkarībā no datu atjaunošanas biežuma Tavā projektā ir jāveic DB backupi! Parasti aktīvos projektos tas notiek reizi diennaktī! Var gadīties, ka nepieciešams ir arī 2x dienā! Link to comment Share on other sites More sharing options...
1mher3 Posted October 7, 2008 Author Report Share Posted October 7, 2008 Lūdzu nevajag taisīt bezjēdzīgas QUOTEs par backup ta skaidris ... bet es domāju svarīgākos datus uzreiz rakstīt divās datu bāzēs, vienai no kurām nav pievienoti useri ar tiesībām izdzēst vai izmainīt (Tad vienīgais man zināmais veids kā tur kko sačakarēt būtu ja tiek klāt hostinga cpanel) Link to comment Share on other sites More sharing options...
Aleksejs Posted October 7, 2008 Report Share Posted October 7, 2008 Ok, tātad tu gribi, ka DB1 būtu tā, no kuras var tikai lasīt. DB2 tāda kurā var arī rakstīt. Kas notiek, ja es izdzēšu ierakstu no DB2? Kas notiek, ja es izmainu ierakstu iekš DB2? Link to comment Share on other sites More sharing options...
Java Posted October 7, 2008 Report Share Posted October 7, 2008 Priekš kam Tev lieka greznība un resursu patēriņš - divas datubāzes? Nepietiks ar diviem lietotājiem uz vienu datubāzi? Vajag vienkārši pareizi sakonfigurēt, lai būtu droši! Rokasgrāmatas palīdzēs! Viens useris - "public" - ar iespējām tikai selectot attiecīgās tabulas, kādā tabulā varbūt vēl insertot un kādā vēl delete, skaties katrai tabulai atsevišķi. Citām varbūt pat select nevajag "public" userim! "Admin" userim atkal savas tiesības... Par divām datubāzēm - samudžināsi visu pats, tas vairāk nepieciešams, ja nu viena datubāze atrubās (ūbersvarīgiem projektiem), tad ieslēdzās otra kaut kā tā - un abas stāv uz atsevišķiem serveriem. Datubāzi dublēt varēsi backupos, kur tev stāvēs attiecīgā datuma un laika "rezerves kopija", lai minimizētu zaudējumus avārijas gadījumā! Link to comment Share on other sites More sharing options...
1mher3 Posted October 7, 2008 Author Report Share Posted October 7, 2008 Ok, tātad tu gribi, ka DB1 būtu tā, no kuras var tikai lasīt.DB2 tāda kurā var arī rakstīt. Kas notiek, ja es izdzēšu ierakstu no DB2? Kas notiek, ja es izmainu ierakstu iekš DB2? Kas notiek, ja ... Tad es par to ka ieraksti izmanīti uzzinu līdzko ieskatos admina daļā (kurā būtu scripts kas detaktē ka ieraksti nesapas), nevis kad dusmīgs users atraksta emailu jo netiek sava kontā iekšā. Link to comment Share on other sites More sharing options...
Aleksejs Posted October 7, 2008 Report Share Posted October 7, 2008 Tātad izmaiņas DB nestājas spēkā, kamēr admins tās neapstiprina? Link to comment Share on other sites More sharing options...
1mher3 Posted October 7, 2008 Author Report Share Posted October 7, 2008 Lūdzu nevajag taisīt bezjēdzīgas QUOTEs nē... piemēram, users Aleksejs nomainījis paroli, bet datubāzē nav piefiksēts ka maiņa apstiprināta izmantojot apstiprinājuma linku (ir tāda plaši pielietota sistēma - lai usera pieprasījums mainīt paroli tiktu pārbaudīts, useram tiek nosūtīts mails ar apstiprinākuma linku, tas links šim ir jāuzspiež...), tātad parole kautkādā veidā nomainīta apejot sistēmu... Link to comment Share on other sites More sharing options...
Aleksejs Posted October 7, 2008 Report Share Posted October 7, 2008 Kādā veidā DB "zina", ka parole nomainīta izmantojot linku? Link to comment Share on other sites More sharing options...
1mher3 Posted October 7, 2008 Author Report Share Posted October 7, 2008 Lūdzu nevajag taisīt bezjēdzīgas QUOTEs Rodas iespaids ka kāds te man uzdod nesakarīgus jautājumus... nez kādēļ... Link to comment Share on other sites More sharing options...
Aleksejs Posted October 7, 2008 Report Share Posted October 7, 2008 (edited) Atvainojiet. Vairs nepiedalīšos šajā diskusijā. Edited October 7, 2008 by Aleksejs Link to comment Share on other sites More sharing options...
Recommended Posts