Ook voor dummies is security belangrijk. Security is niet een leuke optie voor geavanceerde programmeurs, maar een vereiste voor alle programmeurs. Op het moment dat je publiekelijk toegankelijke webapplicaties maakt moeten die veilig zijn, net zoals je een veilige auto moet hebben op het moment dat je je op de snelweg begeeft.quote:Op dinsdag 11 maart 2008 12:50 schreef Thomass het volgende:
Overigens denk ik dat degene die dit vroeg een 'dummy' is op het gebied van php etc. en zal het dus écht niet veel uitmaken voor wat betreft security op zijn website
"Security through obscurity" is geen security. Jij zet er wellicht een dir voor, maar je voorbeeld zou prima gebruikt kunnen worden om een bestand op een externe server te includen, etc. Dat wil je liever niet ivm Cross Site Scripting bijvoorbeeld.quote:Op dinsdag 11 maart 2008 12:50 schreef Thomass het volgende:
Dan moeten users eerst weten wat de namen en paden zijn van de php bestanden, daarbuiten gebruik ik dit zelf ook maar zet ik er eerst een directory voor waarin mijn php bestanden staan, die directory weet de user niet en krijgen ze ook niet te weten en van die directory kunnen ze tevens geen index opvragen.
$bericht = stripslashes($row['Inhoud1'])." ".stripslashes($row['Inhoud2'])." ".stripslashes($row['Inhoud3']);quote:Op dinsdag 11 maart 2008 13:55 schreef Tarabass het volgende:
Ik zit met een probleempje. Ik ben bezig met een blog-pagina waar op de 'frontpage' het begin van het blogitem weergegeven wordt (dus bijv. max 100 karakters) en waarbij het hele bericht te lezen is via een link 'Lees verder', die aan het einde van de 100 karakters wordt weergegeven.
Nu heb ik het voor elkaar om dus de gehele tekst te strippen op 100 karakters en na honderd karakters de link 'Lees verder' neer te zetten. Maar daarbij worden dus woorden in het midden afgekapt, wat erg lelijk is.
Hoe kan ik er voor zorgen dat de string afgekapt wordt op de laatste spatie voor de max van 100 karakters en die vervangen woord door drie puntjes, zodat er altijd hele woorden worden weergegeven?
volgens mij kun je hier wel wat mee: http://www.w3schools.com/php/func_string_strrpos.aspquote:Op dinsdag 11 maart 2008 13:55 schreef Tarabass het volgende:
Ik zit met een probleempje. Ik ben bezig met een blog-pagina waar op de 'frontpage' het begin van het blogitem weergegeven wordt (dus bijv. max 100 karakters) en waarbij het hele bericht te lezen is via een link 'Lees verder', die aan het einde van de 100 karakters wordt weergegeven.
Nu heb ik het voor elkaar om dus de gehele tekst te strippen op 100 karakters en na honderd karakters de link 'Lees verder' neer te zetten. Maar daarbij worden dus woorden in het midden afgekapt, wat erg lelijk is.
Hoe kan ik er voor zorgen dat de string afgekapt wordt op de laatste spatie voor de max van 100 karakters en die vervangen woord door drie puntjes, zodat er altijd hele woorden worden weergegeven?
En hoe zorg je ervoor dat die 15 woorden geen 300 karakters bevatten?quote:Op dinsdag 11 maart 2008 14:09 schreef qu63 het volgende:
Zo heb ik het in mijn geval gedaan
eerste 15 woorden dus
Ik tik(te) de berichten zelfquote:Op dinsdag 11 maart 2008 15:06 schreef CraZaay het volgende:
[..]
En hoe zorg je ervoor dat die 15 woorden geen 300 karakters bevatten?
Hoe dan in dit voorbeeld:quote:Op dinsdag 11 maart 2008 13:30 schreef CraZaay het volgende:
[..]
"Security through obscurity" is geen security. Jij zet er wellicht een dir voor, maar je voorbeeld zou prima gebruikt kunnen worden om een bestand op een externe server te includen, etc. Dat wil je liever niet ivm Cross Site Scripting bijvoorbeeld.
Ik kan dan op mijn site wat HTML plempen, zorgen dat een user naar een bepaalde URL gaat waar ik die HTML include op jouw manier, vervolgens het JS cookie uitlezen en met een form posten naar mijn site. En da's slechts één mogelijke toepassing :)
1 2 3 4 5 6 7 8 9 10 | if (isset($_GET['p']) $page = $_GET['p']; else $page = 'home'; $path = 'subpages/'.$page.'.php'; if (file_exists($path)) include $path; else include 'subpages/home.php'; ?> |
Dan komt er zometeen een slimmerik die script.php?p=../../../../andere/map/geheimscript.php opvraagt. Of stel je eens voor dat het script zelf op deze manier wordt geinclude... ik weet eigenlijk niet hoe php hier mee omgaat maar het kan best dat dit je server (tijdelijk) op zijn bek trekt.quote:Op dinsdag 11 maart 2008 15:25 schreef Thomass het volgende:
[..]
Hoe dan in dit voorbeeld:
[ code verwijderd ]
Mja ok, op deze manier doe ik het (ongeveer), sowieso kun je volgens mij geen externe dingen includen en al helemaal niks buiten public_html (of heb ik het fout hier?), en wat er aan php geinclude kan worden kunnen ze ook op de normale manier bij, door het pad in te typen in de url balk enzo.. Maargoed wellicht heb je gelijk (tis alleen zoveel gedoe als je nieuwe paginas maaktquote:Op dinsdag 11 maart 2008 15:56 schreef CraZaay het volgende:
Da's wel ff iets anders dan je eerdere codevoorbeeld heMaar ook hier zou je als je het pad weet met subpages/../../../bla.php in principe nog ver kunnen komen. Vandaar dat het mijn voorkeur zou hebben om gewoon een lijst bij te houden van paginanamen die okay zijn
Bedankt voor je input, maar hier heb ik weinig aan. Bovendien vind ik je code nogal langdradig, en zou je misschien zoiets moeten proberen, en dan met een countertje of whatever als $no == 15 is:quote:Op dinsdag 11 maart 2008 14:09 schreef qu63 het volgende:
[..]
$bericht = stripslashes($row['Inhoud1'])." ".stripslashes($row['Inhoud2'])." ".stripslashes($row['Inhoud3']);
$bericht = strip_tags($bericht);
$excerpt = preg_replace('#^((\w+\W*){0,15}).*?$#s', '\1', $bericht);
echo " <td class=\"ber_\">".$excerpt."... <a href=\"message.php?id=".$row['ID']."\">Lees verder!</a></td>\n";
Zo heb ik het in mijn geval gedaan :)
eerste 15 woorden dus
1 2 3 4 5 6 7 | function count_words($str) { $no = count(explode(" ",$str)); return $no; } ?> |
Ja, daar ga je redelijk de mist inquote:Op dinsdag 11 maart 2008 16:02 schreef Thomass het volgende:
Mja ok, op deze manier doe ik het (ongeveer), sowieso kun je volgens mij geen externe dingen includen en al helemaal niks buiten public_html (of heb ik het fout hier?)
Bedankt voor je input. Ik heb even een snippet gemaakt, als het nog beter of korter kan hoor ik het graag natuurlijk. Ik zal de regel even met jullie delen:quote:Op dinsdag 11 maart 2008 14:26 schreef mcDavid het volgende:
[..]
volgens mij kun je hier wel wat mee: http://www.w3schools.com/php/func_string_strrpos.asp
Als je die vanaf positie 100 laat zoeken naar een spatie, geeft 'ie de positie waar je je bericht af moet kappen.
1 2 3 | echo $bericht = substr($bericht = substr($bericht,0,100),0,substr(strrpos($bericht," "),0)) . "... <a href=''>Lees verder</a>"; ?> |
1 2 3 | $bericht = substr($bericht, 0, strpos($bericht, ' ', 100)-1) . '<a href="#">Lees verder</a>'; ?> |
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |