NeoX Posted April 6, 2005 Report Share Posted April 6, 2005 Sveiki! Mani interesee kur labaak glabaat paroles, kuras izmanto PHP skripts? Vai taas rakstiit pa taisno skriptaa vai glabaat kaadaa atseviskjaa failaa??? Ja glabaa atseviskaa failaa, tad kaa tur iisti ir ar taam permisijaam? Cik saprotu taadu failu var atvert un pastiities jebkursh ar savu brovzeri!??? Iesakaat kaa man dariit!!! Link to comment Share on other sites More sharing options...
Roze Posted April 6, 2005 Report Share Posted April 6, 2005 Paroles vajag glabāt tajos pašos .php failos, proti teiksim nevis taisīt config.inc (vai jebkādu citu failu kas netiek pārsēts ar php) un tad to includēt bet config.php un tad ja glabāsi šādā formātā <? $parole = 'superduper'; ?> tad no pārlūka atverot config.php nekas izvadīts netiks. Protams tas nepasargā no tā ka kāds kuram ir pieeja pie servera paroles var aplūkot - taču tas jau ir cita līmeņa drošības jautājums (proti vai vieta/hostings kur .php skripti ir atrodas ir pietiekami droša un serviss profesionāls). Taču arī šim ir risinājums - kriptēt jebšu encodēt .php failus. Līdz ar to ja arī kādam izdodas fiziski piekļut failiem, tad tie principā ir neizmantojami. Šim gan nepieciešamas papildus instalēt dažus moduļus webserverī. Populārākie encodētāji varētu būt - Zend Encoder (maksas produkts) http://www.zend.com/store/products/zend-encoder.php un uz servera lai šādus encodētus failus apstrādātu nepieciešams Zend Optimizer kas gan ir bezmaksas http://www.zend.com/store/products/zend-optimizer.php Tad ir arī IonCube http://www.ioncube.com/ Pilnīgs bezmaksas verķis kas ir reizē arī labs accelerators ir eAccelerator http://eaccelerator.net Link to comment Share on other sites More sharing options...
usver Posted April 6, 2005 Report Share Posted April 6, 2005 jebkurā gadījumā - paroles ieteicams NEGLABĀT iekš plaintext - labāk tās šifrēt: function cyph($parole){ return md5(md5($parole).'saltsaltsalt'); }, piemēram. Tad pievienojot jaunu lietotāju viņa paroli failā/datubāzē ielikt šādi šifrētu, un pie katra ielogošanās mēģinājuma salīdzināt to ar šifrētu paroles lauciņā ievadīto paroli. Pirms kāda laika tika drūmi 'hakots' eclub.lv - cilvēki brouzēja kaimiņu direktorijas un lasīja un tālāk izmantoja login/pass citu administrācijas sistēmām no failiem. Jebkādā pietiekami sarežģitā veidā tās kriptējot varētu tādus gadījumus novērst. Link to comment Share on other sites More sharing options...
Delfins Posted April 7, 2005 Report Share Posted April 7, 2005 Paroles vajag glabāt tajos pašos .php failos, proti teiksim nevis taisīt config.inc (vai jebkādu citu failu kas netiek pārsēts ar php) un tad to includēt bet config.php un tad ja glabāsi šādā formātā <? $parole = 'superduper'; ?> tad no pārlūka atverot config.php nekas izvadīts netiks. Protams tas nepasargā no tā ka kāds kuram ir pieeja pie servera paroles var aplūkot - taču tas jau ir cita līmeņa drošības jautājums (proti vai vieta/hostings kur .php skripti ir atrodas ir pietiekami droša un serviss profesionāls). Taču arī šim ir risinājums - kriptēt jebšu encodēt .php failus. Līdz ar to ja arī kādam izdodas fiziski piekļut failiem, tad tie principā ir neizmantojami. Šim gan nepieciešamas papildus instalēt dažus moduļus webserverī. Populārākie encodētāji varētu būt - Zend Encoder (maksas produkts) http://www.zend.com/store/products/zend-encoder.php un uz servera lai šādus encodētus failus apstrādātu nepieciešams Zend Optimizer kas gan ir bezmaksas http://www.zend.com/store/products/zend-optimizer.php Tad ir arī IonCube http://www.ioncube.com/ Pilnīgs bezmaksas verķis kas ir reizē arī labs accelerators ir eAccelerator http://eaccelerator.net 16079[/snapback] arii encoders nepalīdzēs ... 1. es inkludoju ekodētu config.php 2. izvadu print_r($GLOBALS); 3. atrodu mainīgo kas man ir interesants manuprāt nav nevienas metodes kas pasargātu 100% Link to comment Share on other sites More sharing options...
Delfins Posted April 7, 2005 Report Share Posted April 7, 2005 jebkurā gadījumā - paroles ieteicams NEGLABĀT iekš plaintext - labāk tās šifrēt: function cyph($parole){ return md5(md5($parole).'saltsaltsalt'); }, piemēram. Tad pievienojot jaunu lietotāju viņa paroli failā/datubāzē ielikt šādi šifrētu, un pie katra ielogošanās mēģinājuma salīdzināt to ar šifrētu paroles lauciņā ievadīto paroli. Pirms kāda laika tika drūmi 'hakots' eclub.lv - cilvēki brouzēja kaimiņu direktorijas un lasīja un tālāk izmantoja login/pass citu administrācijas sistēmām no failiem. Jebkādā pietiekami sarežģitā veidā tās kriptējot varētu tādus gadījumus novērst. 16080[/snapback] bet ja tev vajag parole konekcijai pie DB ? kā tu atkodēsi ? (tavs variants ir vienvirziena kriptēšana) Link to comment Share on other sites More sharing options...
Grey_Wolf Posted April 7, 2005 Report Share Posted April 7, 2005 Normaali ir glabaat includojamos failus Arpus WEB direktorijas tobish tur kur var piekljuut tikai no locaalaas mashinas :) Skripts pats par sevi ir kaa Locals Useris :) tobish ja arii kaads tiks pie Web failiem - config failam vinsh klat netiks - Ja tiks - tad jau buus pilniibaa uzlauzis visu serveri .. un tad vairs nav svariigi kaadaa formaataa tiek glabaatas paroles :( Link to comment Share on other sites More sharing options...
Delfins Posted April 7, 2005 Report Share Posted April 7, 2005 Normaali ir glabaat includojamos failus Arpus WEB direktorijastobish tur kur var piekljuut tikai no locaalaas mashinas :) Skripts pats par sevi ir kaa Locals Useris :) tobish ja arii kaads tiks pie Web failiem - config failam vinsh klat netiks - Ja tiks - tad jau buus pilniibaa uzlauzis visu serveri .. un tad vairs nav svariigi kaadaa formaataa tiek glabaatas paroles :( 16085[/snapback] vienīgais veids, kas pašlaik ienāca prātā enkodēt php failu ar konekcijas funciju + ar statisku stringu <?php $dbConn = DBIO::connect( 'useris', 'parole' ); ?> jākodē būs arī DBIO klases fails. vienīgais tad pazūd konfigurācijas fīča Bet te atkal problēma, hakeris vai admins var pārkompilēt PHP/db ext tā lai funkcija kaut kur dumpo iekšā failā padotos parametrus :) tā kā, variantu te daudz un neviens nebūs 100% drošs Link to comment Share on other sites More sharing options...
Roze Posted April 7, 2005 Report Share Posted April 7, 2005 Pirms kāda laika tika drūmi 'hakots' eclub.lv - cilvēki brouzēja kaimiņu direktorijas un lasīja un tālāk izmantoja login/pass citu administrācijas sistēmām no failiem. Nu te jau ir datu fiziskā drošība un ne vairs no php koda atkarīga. Par ko akmens hostetāju lauciņā. jākodē būs arī DBIO klases fails.vienīgais tad pazūd konfigurācijas fīča Bet te atkal problēma, hakeris vai admins var pārkompilēt PHP/db ext tā lai funkcija kaut kur dumpo iekšā failā padotos parametrus tā kā, variantu te daudz un neviens nebūs 100% drošs Protams :) Tad teiksim arī jāsāk lietot kriptēts slēgums uz DB (teiksim SSL uz mysql) lai nevarētu nosnifot ;) Link to comment Share on other sites More sharing options...
blackhalt Posted April 7, 2005 Report Share Posted April 7, 2005 Failos var glabāt: if(file_exists('uber_faili/'.sha1($_POST['user']).'.php')){ ... parole iekšā arī kriptēta die(); sha1 hash; ... bet visdrošākais būs tavs paša variants ;) Link to comment Share on other sites More sharing options...
usver Posted April 7, 2005 Report Share Posted April 7, 2005 (edited) bet ja tev vajag parole konekcijai pie DB ? kā tu atkodēsi ? (tavs variants ir vienvirziena kriptēšana) konekcijai pie db normāli iekš plaintext paroli kautkur vajadzēs glabāt - include failā, piemēram. Ja nu ļoti vajag - 1 lietotāja sistēmām var $db_pass = substr(md5($login), 0,5).substr(md5($pass),0,5); etc izvirtības. Ar šifrējamajām vairāk domāju CMS etc web sistēmu paroles, kas parasti ir daudzas un atšķirīgas .. gan no db lietotājvārda paroles, gan arī savā starpā :) Edited April 7, 2005 by usver Link to comment Share on other sites More sharing options...
Recommended Posts