Autor | Zpráva | ||
---|---|---|---|
W4RDON Profil |
Dobrý den, chci si vytvořit jednoduchý systém pro správu mých stránek a zlepšit tak své znalosti avšak mám pár otázek na které bych rád dostal odpověd čí radu.
1. Jak na formátování textu ? Do ted jsem to dělal tak že jsem text i s html znaky uložil do databáze, ale nevím jestli je to dobře např. : <h1>Nadpis</h1><p>nějaký text</p> 2. K čemu slouží htmlspecialchars ? 3. Jak používáte mysql_real_escape_string(), píšete to všude ? nebo na to máte nějakou automatickou funkci nebo něco ? 4. Používáte Adminer ? jaké máte zkušenosti 5. Přihlášení do administrace (jen jeden administrátor) nastavíte v databázi jméno a heslo pro administrátora a poté nějaké přihlášení, je to dobré řešení ? 6. Nebo použít adminer editor ? 7. pěkná url, něco jsem o tom četl ale nevím jestli dobře pochopil. vytvořím funkci na převod z nadpisu na url adresu a poté ještě musím nastavit v .htaccess něco ? Jestli máte nějaký pěkný článek byl bych rád. Děkuji moc |
||
tiso Profil |
#2 · Zasláno: 23. 4. 2013, 16:11:13
1. to záleží od toho, v akej forme vytváraš ten text a čo s ním budeš robiť. Ak píšeš text v čistom HTML, tak si ho tak aj ulož.
2. + 3. http://phpfashion.com/escapovani-definitivni-prirucka 4. áno, denne, veľmi dobrý nástroj 5. ak máš v databáze tabuľku users, tak len pridaj stĺpec (napríklad is_admin), nevytváraj novú tabuľku. 6. to je schodné riešenie, nemusíš špeciálne vytvárať administráciu. |
||
Joker Profil |
W4RDON:
Před otazníkem se nepíše mezera „1. Jak na formátování textu ?“ V závislosti na situaci. „Do ted jsem to dělal tak že jsem text i s html znaky uložil do databáze (…) a poté jsem to normálně z databáze vypsal.“ Takže když někdo do nějakého pole zadá <script>window.location= "virus"; , přesměruje to na tu zavirovanou stránku?
To je použitelné jen pokud je vkládání libovolného HTML kódu do vstupního pole záměr a k poli má přístup jen nějaký privilegovaný a problematiky znalý uživatel. „2. K čemu slouží htmlspecialchars ?“ Konvertuje znaky se speciálním významem v HTML na HTML entity. Viz také manuál „3. Jak používáte mysql_real_escape_string(), píšete to všude ?“ Ne. Používá se na řetězcové (textové) hodnoty posílané do databáze. Jiné datové typy než řetězce je výhodnější před uložením do DB ošetřit jinak a na věci co se vůbec neposílají do databáze nemá (běžně) smysl ji používat. „4. Používáte Adminer ?“ Já osobně ne. „5. Přihlášení do administrace (jen jeden administrátor) nastavíte v databázi jméno a heslo pro administrátora a poté nějaké přihlášení, je to dobré řešení ?“ Může být, pro některé situace. Dodatek: Zajímavá diskuse ohledně toho, kdy aplikovat htmlspecialchars na texty ukládané do databáze, se strhla zde (a taky se tam řeší související věci s escapováním). |
||
juriad Profil |
#4 · Zasláno: 23. 4. 2013, 16:21:00
2. K výpisu něčeho, co vložil uživatel.
Co kdyby ti uživatel vložil do návštěvní knihy následující text: <b>Pokus o přesměrování, snad mi vyjde :D</b> <script> window.location.replace("http://www.jinde.cz"); </script> Odkázaná funkce zamění určité znaky tak, aby prohlížeč interpretoval vzkaz jako obyčejný text. 3. Přejdi z mysql rozšíření na novější mysqli nebo PDO nebo nějaký framework (třeba dibi). Umožňují ti psát dotazy stylem: $db->query("SELECT * FROM tabulka WHERE sloupecek = ?", "pokus o klasicky utok' OR 1=1 --") // pseudokód |
||
W4RDON Profil |
K té první otázce chápu že to není bezpečné.... a jak to tedy řešíte když chcete nastylovat text v administraci (něco jak ve wordpresu když přidávám článek můžu vložit odkaz, obrázek, tučné písmo atd) ?
|
||
Anonymní Profil * |
#6 · Zasláno: 23. 4. 2013, 18:28:44
W4RDON:
„a jak to tedy řešíte když chcete nastylovat text v administraci“ Docela elegantní řešení tvého problému je pomocí BB-kódů. tady se dozvíš co to je, pokud nevíš. Ale ve výsledku to výjde stejně jako html kódy jen s tím rozdílem že s BB-code rozhodně neuděláš tagy typu script a ostatní tagy, které se prostě nehodí(protože většinou si nastavíš jen ty základní - b,u,i, url, img) |
||
Časová prodleva: 13 let
|
0