Jump to content
php.lv forumi

ideja kā samazināt lapas uzlauzšanas risku līdz minimumam


1mher3

Recommended Posts

iespējas ka profesionāļiem tas ko es šeit rakstu izklausīsies smieklīgi, tāpēc, lasot šo te komentāru lūdzu nedzert alu, tēju vai whatever...

 

man ar visai minimālām zināšānām par PHP un serveru drošību šķiet ir diezgan nereāli uzcept PHP scriptu kuru zinātājs nevarētu uzlauzt.

 

tad nu ienāca prātā ideja uzveidot šādu murgu:

1 - datu bāzē visus tabulu nosaukumus uztaisīt nesaksarīgus (piem., efv6fwvyh)

2 - sašifrēt visus ierakstus (nau ne jausmas kādā veidā, bet ideja ka scripts pie saglabāšanas visas vētības pārvērš par kautko tamlīdzīgu: jewgh508whgf08g79wf3b8f043gfv un pie nolasīšanas to atkodē)

3 - PHP failus sakodēt ar Zend Guard (vai kautko tamlīdzīgu).

 

vēlētos zināt vai tas neizklausās pēc galīgām muļķībām un cik lielā mērā šāds pasākums samazinātu risku ka kāds no malas var izmaninīt/pievienot informāciju?

Edited by 1mher3
Link to comment
Share on other sites

  • Replies 59
  • Created
  • Last Reply

Top Posters In This Topic

A Tu kodē tā, lai pats nevarētu uzlauzt ;)

 

Ja tās Tavas uberdarbības tik un tā pieļaus visādus nefiltrētus $_GET, $_POST utml., tad tos tavus tabulu ubernosaukumus tik un tā nolasīs.

 

http://www.google.com/search?complete=1&am...mp;aq=f&oq=

 

http://www.google.com/search?num=30&co...mp;aq=f&oq=

Link to comment
Share on other sites

1 - datu bāzē visus tabulu nosaukumus uztaisīt nesaksarīgus (piem., efv6fwvyh)

2 - sašifrēt visus ierakstus (nau ne jausmas kādā veidā, bet ideja ka scripts pie saglabāšanas visas vētības pārvērš par kautko tamlīdzīgu: jewgh508whgf08g79wf3b8f043gfv un pie nolasīšanas to atkodē)

3 - PHP failus sakodēt ar Zend Guard (vai kautko tamlīdzīgu).

1. Jegas nekaadas ...

2. Ja buus atsifresanas mehanisms --> tad to arii izmantos

3. Kods jau no taa nemainaas

---

Driizaak jaievero pashi drosiibas pamatprincipi kaa taadi..

1. DB izmantot 2 veida pieejas paroles

viena Admin pieeja --> ljauj dzest/ievietot/ labot datus + veidot jaunas tabulas utt --> so izmanto tikai veidojot kontrolejot pashu lapu

otra ar minimali nepieciesamajam tiesiibam atlasiit / Ja nepieciesams labot / dzeest .... --> izmanto pasaa lapaa

2. Galvenos skriptus iznest arpus Web foldera (ja tas iespejams ), tb. no arpuses tiem piekljuut nevar ...

3. Ieverot normalu parolju veidosanas principu kur ir Lielie/mazie & cipari --> nevis savu vardu+ dzimsanas gadu

---

Vienmer parbaudiit ienakoshos datus --> ja var sanjemt tikai INT tad ienakosos datus parkonverteet par INT

saglabajot datus DB izmantot kaadu no funkcijam kas apgriezj HTML tagus u.t.t.

 

DB atljaut pieeju tikai no localhost VAI konkretaam IP.

DB kaa useri neizmantot root --> root atstaat pieeju tikai no localhost ....

---

Neglabat servera pieejas datus pasaa web root folderii --> nebriinies taadi briinumi ir redzeeti ....

 

---

Principaa ar sho vajadzeetu pietikt ...

Link to comment
Share on other sites

"..saglabajot datus DB izmantot kaadu no funkcijam kas apgriezj HTML tagus.."

A es saglabāju iekš DB novēršot SQL injekcijas, bet datus neaiztieku. Apstrādāju tikai pie izvades ar makeSafe()

	function makeSafe($var){
	return htmlentities($var,ENT_QUOTES,'utf-8');
} /* makeSafe */

Edit: kādi jums ir argumenti izmainīt lietotāja ievadīto info?

Edited by Toms
Link to comment
Share on other sites

A es saglabāju iekš DB novēršot SQL injekcijas, bet datus neaiztieku. Apstrādāju tikai pie izvades ar makeSafe()

	function makeSafe($var){
	return htmlentities($var,ENT_QUOTES,'utf-8');
} /* makeSafe */

kas tas par briinumu --> lai sarezgjiitaaks kods ;)

Nakamreiz uzrakstii atseviskju klasi --> Vareesi staastiit ka Visu veido OOP ;)

---

Ta tas bij vairak kaa piemers/ ieteikums --> galvenaa doma ir tieshi taa lai Useris nevar Sacakareet datus ....

+ idejiski ir dazji ieguvumi datus apstradajot pie ievades --> kaa zinams dati parasti tiek izvadiiti Krietni biezjaak nekaa ievadiiti (saglabati) taatad mazak darbiibu pie izvades ....

Link to comment
Share on other sites

Kas tie par argumentiem?? DB klase to visu automātiski apstrādā, tā, ka nav nekas sarežģītāks. Un tavs OOP "arguments".. Vēl pamēģini apgalvot, ka tabulāru informāciju es taisu iekš CSS un <div>!

Uzmini, kāpēc man atsevišķa funkcija tam htmlentities() ?

 

Users nedrīkst čakarēt tavus datus, bet tu drīksti čakarētu viņējos?

 

Outputam eksistē visādu veidu cachingi. Bez tam izvaddatu apstrāde nebūs "bottleneck".

Link to comment
Share on other sites

Un tavs OOP "arguments"..

Uzmini, kāpēc man atsevišķa funkcija tam htmlentities() ?

Users nedrīkst čakarēt tavus datus, bet tu drīksti čakarētu viņējos?

Arguments bija ka standarta PHP funkciju ieliec savaa funkcijaa --> jegas nekaadas ...

Cita lieta ja tur ieksaa iekljautu paarejaas parbaudes utt...

Useris nedriks cakaret tavus datus, jo Vinsh izmanto serveri Nevis tu vinja Personiigo kompi --> Piedevam neviens nesaka ka dati tiek Cakareeti ...

----

Piedevam nevienmer DB Selectam tiek izmantota atseviskja klase --> biezji vien pietiek ar 1 funkciju kur salikt viis vajadziigais --> padod SQL kveriju --> sanjem datus --> sadai darbiibai nebuut nevajag atsevikju klasi ...

Link to comment
Share on other sites

Ja vien nav strikti atrunāts, ka visi dati nāks tikai un vienīgi no tavām formām un būs jārāda tikai un vienīgi weblapā, tad nevajag usera lietotos datus kaut kā replacēt, piem, alert'u pa citiem ceļiem tablē iekšā, kurš variants darbosies, kurš nē.

Link to comment
Share on other sites

Tieši tāpēc man ir atsevišķa funkcija, kuru var lietot gadījumos, kad nav DB klases!

Man nav vēlēšanās padarīt kodu grūtāk lasāmu (un rakstāmu) dēļ optional parametriem. Salīdzini:

htmlentities($var,ENT_QUOTES,'utf-8');

makeSafe($var);

 

Datus nečakarē - kā sauc to koderi, kas sabojā lietotāja inputu tad, ja tekstā bijuši kaut kādi < vai ' ?

Link to comment
Share on other sites

htmlentities($var,ENT_QUOTES,'utf-8');

makeSafe($var);

un kad kaadam citam buus jalabo tavs rakstiitais kods --> naksies mekleet ko ar to makeSfe esi domajis -->

un ja jau taa velies samaziinat rakstamo simbolu daudzumu kadelj neizmanto tikai 1 burtu ??

salidzini

makeSafe($var)

ar

a($a)

;)

Link to comment
Share on other sites

Bet nu labi - makeSafe() VS a()

a() - naksies mekleet ko ar to a() esi domajis

Es gribeju pateikt ka nav nekaadas jegas dublet PHP gatavas funkcijas --> veidojot savas ...

Tas buutu attaisnojami ja apstraadaatu datus ar vairakam f-jam ... tad tas pilniibaa ataisno jaunas funkcijas veidosanu ...

nevis:

 

IzvadaUzEkrana($var)

{

echo $var;

}

 

var jau visas funkcijas parsaukt LV buus vel vieglak saprotams, jautajums vai vajag...

Link to comment
Share on other sites


×
×
  • Create New...