Jump to content
php.lv forumi

PHP un templeitu sistēmas


briedis

Recommended Posts

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.

Link to comment
Share on other sites

  • Replies 111
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Posted Images

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"

Link to comment
Share on other sites

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.

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 by webi
Link to comment
Share on other sites

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? :)

Link to comment
Share on other sites

Blitz
1. 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.

Kavacky
1. 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 by webi
Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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 ] &amp;K'. Lieki piebilst, kas notiek ar tādu attieksmi programmētā risinājumā, nedaudz pieaugot datu apjomam.

Edited by Mr.Key
Link to comment
Share on other sites

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ā

Link to comment
Share on other sites

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 by webi
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...