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>
a poté jsem to normálně z databáze vypsal. Pak jsem narazil na htmlspecialchars což je druhá otázka:
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
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
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>
Pokud to neošetříš, tak každý uživatel, který přistoupí na stránku s tímto vzkazem, bude přesměrován jinam. A hrozí i horší útoky než přesměrování.
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
Napřed popíšeš dotaz bez hodnot a následně mu řekneš jaké hodnoty má doplnit a on sám je podle typu správně oescapuje.
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 *
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)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: