briedis Posted February 25, 2016 Author Report Share Posted February 25, 2016 Piemēra pēc, es lietoju DataGrip. Produkcijas DB vienmēr stāv "read-only" mode, just in case. Nav jau runa par aizliegt, ir runa par kaut necik inteliģentu sistēmu, kas vismaz brīdina par to, ka tu grasies izdarīt kaut ko reāli stulbu. phpstormam db viewerim arī ir šī fantastiskā fīča - uzlikt read only. Vari selektēt utt, bet nevar neko labot. Quote Link to comment Share on other sites More sharing options...
Blitz Posted February 25, 2016 Report Share Posted February 25, 2016 Nu nez, labāk jau pure php .. php visa būtība ir būt embeded html templeitam. Jo kad visādas templeitsistēmas (piem tas pats Twig) sāk darīt kaut ko šādu: {% for user in users %} * {{ user.name }} {% else %} .. t.i. redefinēt pašas valodas konstrukcijas, tad man liekas, ka tālāk vairs nav kur. 1) Pure php pieļauj vairāk kļūdu (xss) 2) Pure php ir mazāk lasāms (subjektīvi), "verbozāks" 3) Templeitu valodas domātas ērtībai, ja developerim tas ir ērtāk, tad ir jaizmanto! Lielāka produktivitāte, mazāk kļūdu, code reuse utt 4) Kompilējamiem templeitiem tā pat nav nekāds overheds, tad kāpēc nē? Tad jau arī sass/less priekš css ir "tālāk vairs nav kur" Quote Link to comment Share on other sites More sharing options...
jurchiks Posted February 25, 2016 Report Share Posted February 25, 2016 Starp citu, Plates I like it! Quote Link to comment Share on other sites More sharing options...
F3llony Posted February 26, 2016 Report Share Posted February 26, 2016 1) Pure php pieļauj vairāk kļūdu (xss) Garbage in, garbage out. Ja tu vispār pieļauj kaut kam XSSīgam nonākt līdz templeitiem, tev jau ir problēma. Quote Link to comment Share on other sites More sharing options...
webi Posted February 26, 2016 Report Share Posted February 26, 2016 (edited) Es ar padomāju: "Tik gudri cilvēks runā, bet kāds vēl XSS?" :DVisu ievaddatu pārbaude taču ir pamatu pamatos.Vispār jau vajag pieturēties pie MVC paterna, tad nevajadzēs izmantot template sistēmas, varēs visu ātri un ērti izdarīt bez lieka, sveša koda. Edited February 26, 2016 by webi Quote Link to comment Share on other sites More sharing options...
Blitz Posted February 26, 2016 Report Share Posted February 26, 2016 Inputa html eskeipings? Jūs jokojat? http://lukeplant.me.uk/blog/posts/why-escape-on-input-is-a-bad-idea/ Quote Link to comment Share on other sites More sharing options...
Kavacky Posted February 26, 2016 Report Share Posted February 26, 2016 Par valodas konstrukciju redefinēšanu ir domāts nevis, ka tu raksti "{{ $var }}", kas automātiski eskeipo, bet gan "<? foreach ($arr as $v) { ?>" aizstāšanu ar "@foreach $arr as $v", kas saīsina pasākumu minimāli, kā arī neko fundamentālu nemaina. Nu ērtāk jau ir vispār, jā. :D Tāpat arī ar visādiem "štrumentiem" nu CNC operātoram nevajadzētu būt iespējai (dot iespēju) izfrēzēt sev rokā caurumu :)Nu jā, ir jau arī rīki, kas DB adminam neļauj redzēt īstos datus bāzē, ko šams adminē. Utt... :) PS: Kas te ieminējās par "XSSīgu datu nepielaišanu līdz templeitam"... lūdzu, izdzeriet indi un aizejiet nomirt. Jebšu jums šķiet, ka "<script>window.alert('trololo')</script>" ir slikts username, kā arī šis posts nemaz nedrīkstētu saturēt šo tekstu? :) Quote Link to comment Share on other sites More sharing options...
Blitz Posted February 26, 2016 Report Share Posted February 26, 2016 Vel labāk glabāt eskeipotus datubāzē :D Vai kā biedrs webi iesaka, validēt. "Sorry, input data can not contain XSS" :D Quote Link to comment Share on other sites More sharing options...
webi Posted February 26, 2016 Report Share Posted February 26, 2016 (edited) Blitz1. Nesaprotu, kur Tu redzi, ka pieminēta ievaddatu eskeipošana?2. Datu validitācija ir normāla prakse. Vārds ir vārds un e-pasts ir e-pasts.Kavacky1. Iespaidīgs username, bet jāapbēdina, ka reti kur izdosies ar tādu reģistrēties.Validitē datus pārsvarā:1. Lietotāju neuzmanības, cilvēciskā faktora pēc.Piemēram, atstarpe aiz username reģistrējoties.2. Datu administrācija, supports.Bet beigās jau Blitz taisniba - PHP pieļauj XSS, ja programmētājs to nenovērš.Tikai nesaprotu vai tad templeitu sistēmām ir kāda īpaša maģija kā no tā izvairīties?MVC kā padod mainīgo View`am to parasti automātiski izdara.EDIT: Vispār templeitu sistēmas taču raksta PHP?Nekad neesmu pētījis. :D Edited February 26, 2016 by webi Quote Link to comment Share on other sites More sharing options...
Blitz Posted February 26, 2016 Report Share Posted February 26, 2016 2. Datu validitācija ir normāla prakse. Vārds ir vārds un e-pasts ir e-pasts. Kautkāds wtf, kurš te runā par ne-validēšanu? Tagad pastāsti man <strong>text</strong> ir valīdi ievaddati, piemēram user about me laukā, vai nav? Quote Link to comment Share on other sites More sharing options...
webi Posted February 26, 2016 Report Share Posted February 26, 2016 Nesatraucies, es diskutēju par validitēšanu nevis nevaliditēšanu.Personīgi es tādu lauku nevalidētu, bet ja būtu nepieciešamība, piemēram, kādam ļoti sakārtotam saitam, tad atļautu burtus, atstarpes un pieturzīmes. Quote Link to comment Share on other sites More sharing options...
Mr.Key Posted February 26, 2016 Report Share Posted February 26, 2016 (edited) Pat nefiltrējot pie inputa, username "<script>window.alert('trololo')</script>" būtu jāparādās šādi: Sveiks, <script>window.alert('trololo')</script>! | Profils | Iziet Vai formā: Vārds: [<script>window.alert('trololo')</script>! ] Ja parādās alerts vai input lauku nograuj pēdiņas ievadītajā saturā... Bērnudārzos veido sistēmas, kur nospied divas reizes "Saglabāt" un teksta vērtība "SIA 'M&K'" pārvērtusies par kaut ko [sIA ] &K'. Lieki piebilst, kas notiek ar tādu attieksmi programmētā risinājumā, nedaudz pieaugot datu apjomam. Edited February 26, 2016 by Mr.Key Quote Link to comment Share on other sites More sharing options...
Blitz Posted February 26, 2016 Report Share Posted February 26, 2016 Es ar padomāju: "Tik gudri cilvēks runā, bet kāds vēl XSS?" :D Visu ievaddatu pārbaude taču ir pamatu pamatos. Nesatraucies, es diskutēju par validitēšanu nevis nevaliditēšanu. Personīgi es tādu lauku nevalidētu, bet ja būtu nepieciešamība, piemēram, kādam ļoti sakārtotam saitam, tad atļautu burtus, atstarpes un pieturzīmes. Tu laikam nezini par ko vispār runā Quote Link to comment Share on other sites More sharing options...
webi Posted February 26, 2016 Report Share Posted February 26, 2016 (edited) Vainīgs, virspusēji paskatījos uz problēmu. Es vienkārši nesaprotu, kas templeitu sistēmās ir tik īpašs, lai izvairītos no XSS, ko nevarētu iekļaut savos risinājumos? Edited February 26, 2016 by webi Quote Link to comment Share on other sites More sharing options...
Blitz Posted February 26, 2016 Report Share Posted February 26, 2016 (edited) Tas ka plain PHP output escape by default nenotiek, bet template engine notiek un tam vairs nav jāpievērš speciāla uzmanība, izņemot vietās kur tu specili forcē templeitam rādit neeskeipotu saturu. Edited February 26, 2016 by Blitz Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.