Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 39 ] Choď na stránku: predchádzajúca 1, 2
AutorSpráva
Offline

Užívateľ
Užívateľ
Veľky projekt

Registrovaný: 31.05.09
Prihlásený: 02.06.17
Príspevky: 562
Témy: 37
Bydlisko: BegyBen
Príspevok NapísalOffline : 22.08.2009 11:09

to ti urcite nebude stacit, vacsinu vstupov budes musiet osetrit na mieru


Offline

Čestný člen
Čestný člen
Veľky projekt

Registrovaný: 11.08.07
Príspevky: 4088
Témy: 34
Bydlisko: Brno
Príspevok NapísalOffline : 22.08.2009 11:15

Flety píše:
predpokladám, že na ošetrenie by mala stačiť stenleyho funkcia
To mozes na ten velky projekt rovno zabudnut. Vsetko, co robi ta funkcia, je v podstate htmlspecialchars. Ak robis s databazou, ovela dolezitejsie bude osetrenie backslashov a apostrofov (tie apostrofy sa daju vyriesit tiez pomocou htmlspecialchars, ale treba pridat 2.parameter).


Offline

Správca fóra
Správca fóra
Veľky projekt

Registrovaný: 27.07.07
Príspevky: 3948
Témy: 51
Bydlisko: Bratislava
Príspevok NapísalOffline : 22.08.2009 11:41

ta funkcia vznikla preto, aby nebolo treba osetrovat kazdu jednu premennu zvlast, teda aby sa tato cinnost zjednodusila a zautomatizovala... ak si vsimnes, uz v jej nadpise je uvedene, ze sa jedna o zakladne osetrenie a teda je potrebne, aby si si ju prisposobil, tj pridal dalsie osetrenia vstupov, ktore povazujes za nevyhnutne v tvojom projekte...







_________________
NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE
Offline

Užívateľ
Užívateľ
Veľky projekt

Registrovaný: 31.05.09
Prihlásený: 02.06.17
Príspevky: 562
Témy: 37
Bydlisko: BegyBen
Príspevok NapísalOffline : 22.08.2009 11:56

Na stenleyho funkciu sa nespoliehaj (ani na ziadnu inu), ktoru najdes na nete a je ku nej napisane ze osetrenie vsupov. Sam musis pochopit ake ti hrozia rizika (SQL injction, XSS, nulovy bajt atd...) a na zaklade toho konat.
Ak mas napr. 3x radio kde mas value napr. S, M, L tak by si mal spravit funkciu(metodu v class) na oserenie, ktora takyto vstup ocakava a vracia TRUE or FALSE. Teda robit veci na mieru a nedoverovat uzivatelovi ;)


Offline

Správca fóra
Správca fóra
Veľky projekt

Registrovaný: 27.07.07
Príspevky: 3948
Témy: 51
Bydlisko: Bratislava
Príspevok NapísalOffline : 22.08.2009 12:29

zas az tak namieru by som to nerobil, nie je totiz efektivne, aby si na kazdy vstup mal zvlast metodu/funkciu (viem, ze si to tak asi nemyslel, ale nedalo mi)... staci jedna, ale poriadne prepracovana, pre zaciatok by jej stacilo predavat hodnotu vstupu, pole dovolenych hodnot (ak su konkretne stanovene) pripadne regularny vyraz , triedu vstupu (meno,cislo,email,sql hodnota...), osetrenie nad ramec zakladneho osetrenia a pod...







_________________
NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE
Offline

Skúsený užívateľ
Skúsený užívateľ
Veľky projekt

Registrovaný: 29.10.07
Prihlásený: 27.10.23
Príspevky: 1395
Témy: 30
Bydlisko: Bratislava
Príspevok NapísalOffline : 22.08.2009 18:54

Podla mna uplne staci nieco taketo v kombinacii s prepared statement:
http://www.phpclasses.org/browse/file/9402.html







_________________
PC: OS: Windows 11 (64bit) CPU: AMD Ryzen 5 3600 GPU: ASUS TUF RTX3060Ti 8GB RAM: 16GB DDR4-3200MHz Kingston Fury MB: ASUS TUF Gaming B550M WIFI SSD: 1000GB PCIe M.2 NVME
Mobil: Xiaomi POCO F2 PRO
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.02.07
Prihlásený: 21.02.10
Príspevky: 3984
Témy: 96
Príspevok NapísalOffline : 22.08.2009 21:05

Ok takže skúsim sa vyjadriť hoci nerobím vo veľkých firmách s väčšími projektami som sa stretol.

Čítal som, že každý kód, aby bol dobre čítateľný a prehľadný by mal byť na jednu obrazovku. S časti s týmto súhlasím teda - tvoj kód má byť jednoduchý, prehľadný, ľahko udržiavateľný, bezpečný.

Ako to dostiahnuť. Tuším GoodWill tu na druhej strane vravel ako dokumentovať. Súhlasím iba s časti. V radách sa trošičku odvolávam na knihu Java 6, od tvorcov Java. V podstate sú to rady ktoré nájdeš vo všetkých väčších projektoch, a ja som na ne (bohužiaľ) prišiel sám :D

Premenné a poznámky
Používať vhodné premenné. Premenné typu: $u, $g, $a nepripadajú do úvahy. Názov premennej má byť stručný ale výstižný. Pri použití dvoch slov sa každé ďalšie slovo začína veľkým písmenom. Pri používaní konštant sa používajú veľké písmená, amiesto medzier sú potržníky:
Kód:
$meno = "Denis";
$pocetPrvkov = mysql_...;
$MAX_PRVKOV = 6;

Mne sa ešte osvedčilo používať "predpony", čím sa zprehľadnilo zopár vecí:
Kód:
$q_user = $DB -> Query("SELECT * FROM user"); //query
$a_user = $DB -> FetchArray($q_user); //array


Tým, že budeš mať takto zvolené názvy premien, metód, funkcií vytváraš samodokumentáciu. Určite nedokumentuj každý krok, lebo to má kontraproduktívny účinok:

Kód:
$prveCislo = 1; // priradil som hodnotu pre prvé číslo výpočtu
$druheCislo = 3; // priradil som hodnotu pre druhé číslo výpočtu
if($prveCislo > 0 && $druheCislo > 0) { // ak rátame s reálnymi číslami
$vysledok = $prveCislo * $druheCislo; // výsledok je násobok oboch čísel
echo $vysledok; //vypisem výsledok
} //koniec podmienky
else { // ak nerátame s reálnymi číslami
echo "Nezadali ste reálne čísla"; //vypíšeme chybovú hlášku
} // koniec else podmienky


Dokumentuj hlavne dôležité časti aplikácie, hlavne aby si rýchlo našiel čo hľadáš a aby si sa rýchlo dostal do obrazu. Teda ak zvolíš vhodné názvy netreba ti robiť dokumentáciu načo tá-daná funkcia slúži: zmensiObrazok(), vypisAdresar(), pagination(), safety() a pod. Ak je trieda príliš obsiahla tak dokumentovať hlavne na začiatku kde zhrnieš čo robí, na čo slúži, čo obsahuje. V kóde iba jednotlivé úseky oddeliť. Ja som za to aby bolo v kóde čo najmenej komentárov, a čo najviac kvalitného kódu :)

Pokiaľ sa dá každej drobnosti venuj jeden riadok, teda nepchaj 7 vecí do jedneho riadku. Taktiež ak sa dá používaj skrátené formy:
Kód:
//NIE
$prveCislo=1;$druheCislo=3;if($prveCislo>0 && $druheCislo>0)$vysledok=$prveCislo*$druheCislo;else $vysledok="Zlé čísla";echo $vysledok;

//ANO
$prveCislo = 1;
$druheCislo = 3;
$vysledok = ($prveCislo > 0 && $druheCislo > 0) ? $prveCislo * $druheCislo : "Zlé čísla";
echo $vysledok;


Bezpečnosť
Odporúčam používať stenleyho funkciu. Slúži na základnú bezpečnosť. To znamená, že tie najväčie muchy to odstráni a teba stačí tu danú časť ošetriť podľa tej danej situácie. Uprednostňovať whitelist pred blacklistom, kde to je možné. Snažiť sa vyhnúť, zložitým nezmyselným veciam, pretože tam práve vznikajú chyby.

Taktiež ak sa Ti nejaká časť kódu opakuje v kóde/och viac krát odporúčam vytvoriť funkciu. Takteiž ako GoodWill dobre povedal, vytvoriť modularitu.

Na záver bezpečnosti by som odporúčal prečítať si nejakú dobrú knihu, osobne odporúčam: Zraniteľný kód od Cpress. Dočítaš sa v nej veľa dobrých rád a odporúčaní.

Ešte odporúčam urobiť možno aj smiešne veci, ale veľmi to ocenníš:
Písať si na paier, čo má daná vec robiť, ako sa má správať čo ma poskytovať. napr. rozanalyzovať celý projekt. Spočiatku som to robil v hlave ale zistil som, že je to oničom. Ak si spíšeš zoznam, tak potom môžeš ísť krok-po-kroku, čo máš a čo ešte nie. Teraz som našiel na oko dobre vyzerajúci článok od smashingmagazine kde to pravdepodobne vysvetľujú:
http://www.smashingmagazine.com/2009/08 ... ductivity/ (čítal som nadpisi a páčil sa mi :D)

Nakoniec by som podotkol, aby si nezabudol spracovávať chyby, výnimky, a dôležité, aby si oddeloval vrstvy: logiku od designu (, + niekto vraví databázu od logiky[zatiaľ sa mi to v reálne nepodarilo :) ]).


Viac v tomto momente na srdci nemám. Ak ma niečo napadne doplním :)


Offline

Skúsený užívateľ
Skúsený užívateľ
Veľky projekt

Registrovaný: 09.07.08
Prihlásený: 17.01.15
Príspevky: 1585
Témy: 96
Príspevok NapísalOffline : 23.08.2009 18:34

Tominator, na prvej strane som spomínal coding standards pre zend. Pozri si to, tam je riešené všetko vrátane komentárov a dokumentácie.







_________________
neříkejte, že něco nejde udělat, protože se vždycky najde nějaký blbec, co neví, že to nejde – a udělá to!
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.02.07
Prihlásený: 21.02.10
Príspevky: 3984
Témy: 96
Príspevok NapísalOffline : 23.08.2009 18:45

Je to na spomínané na druhej strane :) Zbežne som to preletel, ale mne to netreba. Tým nechcem povedať, že vedome odmietam písať pekný zrozumiteľný kód, ale myslím si, že pravidlá, ktoré používam ja, sú priateľné, a v niektorých prípadoch zhodné s tými zenďackými, o čom svedčí aj môj príspevok nad tvojím :) Teda aj môj kód je pekný a zruzumiteľný, len strikne nedodržiavam zenďacke pravidlá :)

// Rozhodne tým však neopovrhujem, a môžem z toho čerpať "inšpiráciu" :)


Odpovedať na tému [ Príspevkov: 39 ] Choď na stránku: predchádzajúca 1, 2


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy. hosting pre velky projekt

v Webhosting a servery

4

880

18.08.2010 18:05

shaggy Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Hľadá sa PHP kóder, veľký projekt

v Ponuka práce

4

1106

07.07.2008 14:50

Vraell Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. projekt - model

v Ostatné

1

441

25.02.2010 14:03

rooobertek Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Projekt-BiohazarD

v Modifikácie, návody a projekty

6

1438

01.04.2006 13:44

Intelman Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Projekt C++

v Assembler, C, C++, Pascal, Java

4

632

23.10.2011 16:57

chrono Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. projekt Aquaria

v Modifikácie, návody a projekty

11

1278

01.10.2005 13:46

To[m]aS Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Projekt IT

v Vzdelanie, štúdium, škola

4

677

15.03.2008 22:10

Lub0$ Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Projekt DooM 3

v Modifikácie, návody a projekty

25

2337

01.10.2005 16:44

Spirit Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. MAX overclock - projekt

v Biosy a ladenie výkonu

5

822

06.05.2007 20:00

Mastros Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Projekt: Negiluv mod

v Modifikácie, návody a projekty

9

1451

01.10.2005 15:42

Spirit Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Linux dokumentačný projekt

v Operačné systémy Unix a Linux

0

483

25.06.2010 18:11

programmer Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. projekt o HDD

v Pevné disky a radiče

5

612

25.09.2009 15:02

ElNorka Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. PROJEKT: dravgunov modding

v Modifikácie, návody a projekty

4

1491

04.10.2005 9:31

XPM Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Môj nový projekt

[ Choď na stránku:Choď na stránku: 1, 2, 3 ]

v Webdesign

81

5125

07.08.2009 11:34

Tominator Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Ročníkový projekt - jukebox

v Notebooky a netbooky

3

364

01.10.2015 10:37

majotomek Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Projekt :Computio Aquatilis

v Modifikácie, návody a projekty

0

953

01.10.2005 12:40

To[m]aS Zobrazenie posledných príspevkov


Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra