Even voortbordurend op de reacties bij 'Lancering nieuwe versie PHPhulp bekend' maar een topic geopend. Dit is mijn reactie op de laatste paar posts, ze zijn gequote dus daarvoor hoeft niet worden teruggegrepen naar dat nieuwsbericht.

Jonathan schreef op 06.01.2010 14:47
Denken jullie dat een ratingsysteem zoals op Tweakers hier werkt? Ik denk het zeker niet. Op Tweakers lopen bijna alleen maar professionals rond. Mensen reageren vaak enkel als ze wat inhoudelijks te zeggen hebben. Het ratingsysteem is daar mooi omdat er erg veel gebruikers zijn en er content is die gerate kan worden.

Hier is (gok ik) de helft van de topics gestart door een beginner met een simpele vraag. Qua posts gok ik dat zo'n 20% misschien interessant is. Als we dan met een ratingsysteem gaan werken zouden er misschien 100 goede PHPhulpers zijn die altijd te zien zijn, maar meer niet.

Wat m.i. wél een enorme verbetering zou zijn, is dat bezoekers aan kunnen geven of een post 'het antwoord' was, een beetje zoals op Yahoo Answers (als ik mij niet vergis). Als dit qua weergave duidelijk zichtbaar is (andere achtergrondkleur bijvoorbeeld) is het voor anderen makkelijk om de goede posts er tussenuit te pikken.

Natuurlijk verschillen deze twee systemen niet zo veel, maar ik denk dat ze beide op andere soorten contact gericht zijn. Een echt ratingsysteem is goed toepasbaar wanneer er niet naar een to-the-point oplossing gezocht wordt (als in een forumtopic) maar meer wanneer er een leuke en inhoudsvolle discussie gehouden wordt (als onder een nieuwspost, op Tweakers). Een optie om aan te geven of een bepaalde post een goed antwoord op je vraag was is ideaal voor op een forum en een wat positievere benadering dan de eerste methode.
@Jonathan
Ik denk inderdaad dat dat kan werken en dan vooral op reacties als "google it" die dan 3 keer onder elkaar door verschillende users worden gegeven. Misschien als deze reacties ook niet in de postcount meetellen dat dit al redelijk helpt dit te voorkomen. Helemaal voorkomen kan je het niet, maar eigenlijk zit er nu aan dat soort reacties geen straf/ nadeel, waardoor ze te gemakkelijk worden gegeven.

Ook bij de nieuwsberichten worden de reacties gerate, en dat werkt ook prima. Ze zijn default niet zichtbaar voor bezoekers, tenminste niet de inhoud van het bericht, wel dat er een bericht is, maar met account kan je ze evt wel weer zien, dat is in te stellen. Het voordeel is dan dat er geen bonus is als ze gewoon maar een berichtje posten. Misschien kan ook iets als een "score" bij reacties (met name bij scripts/ reviews handig) worden ingevoerd, helemaal niet zinnig is -2, niet zinnig -1, ok 0, goed +1, zeer goed +2. Ook hierop kan je + dan wel minpunten verdienen, bij teveel minpunten (zegge -50 ofzo) kan je geen reacties meer plaatsen bij tutorials/ scripts, of dat je reacties by default al niet meer zichtbaar zijn. Dit helpt vooral het geven van onzinnige reacties ontmoedigen, maar dat is ook de bedoeling van het systeem.

Een post die "het antwoord was" is op zich een heel leuk idee, maar soms zijn er meerdere posts die gezamelijk het antwoord vormen. Geen probleem op zich, maar dat maakt het niet eenvoudig om "een antwoord als het antwoord aan te geven". Ik zal dit doorbrieven aan Bas (als die het niet al heeft gelezen) via de mail.

Topics meteen sluiten lijkt me geen goed plan, wat wel kan is de gebruiker een berichtje sturen dat zijn topic niet in het lijstje wordt getoond, en dat bij aanpassingen van het topic dit wel weer wordt getoond. Het loont dan om een goede topicstart te schrijven, omdat je dan meteen zichtbaar blijft.

Duidelijjke faqs enzo lijkt me wel slim, maar daar is wel over nagedacht (heb ik ergens gehoort eerder, zal het nog eens navragen) maar een goede zoekfunctie en misschien een "related" systeem bij verschillende topics met eenzelfde (soort) onderwerp.

Pepijn schreef op 06.01.2010 16:18

Maar hoe moet ik dan aan de 500 posts komen op de nieuwe phphulp zonder beginner vragen te kunnen beantwoorden?

@Pepijn
Ik denk dat we de beginners wel hun vragen moeten laten stellen, maar het zoeken gewoon beter/ gemakkelijker moeten maken. Dat scheelt al heel veel, ook voor anderen om te verwijzen naar een bepaald topic voor de oplossing.
Beste Nick,

Bij deze de link naar de RSA class. Ik weet niet zeker of de link meteen werkt, het kan zijn dat je een mirror moet kiezen, maar dit is de link voor RSA.

RSA:
http://www.phpclasses.org/browse/package/4121/download/zip.html


AES:
http://www.phpclasses.org/browse/package/4238/download/zip.html

en $PHPNewbie,

Nee je wachtwoord is wel veilig hoor. Het principe werkt niet helemaal zoals jij denkt. Een gecodeerd wachtwoord komt niet meer boven. Het gaat om het bericht dat je mee stuurt. Als je het wachtwoord als bericht mee stuurt, ja dan is je wachtwoord inderdaad te decoderen, maar als je hier een een random hex van maakt, kun je lang zoeken :)

RSA werkt dan ook met eeen publieke en geheime sleutel. Die kun je niet ontdekken. Dus zelfs als de code publiekelijk te gebruiken is, en dat is ook zo, dan nog kun je er niet achter komen. Je hebt namelijk de geheime sleutel nodig. Aangezien dit een astronomisch groot priem getal is, kun je daar niet achter komen.

Ter illustratie: het grootste priemgetal dat ooit ontdekt is bevat 13 miljoen(!!!!!!) karakters. Dus ga jij ze maar lekker allemaal bij langs, ( en je moet eerst de priemgetallen formule weten.. ) dan kun jij leuk achter de geheime sleutel komen :)


Over de classes: je moet ze wel nog een beetje tweaken, zoals de geheime sleutels, en de berichten die mee gestuurd worden, defaults zijn goed, neem daar een voorbeeld aan.
Over het md5 en sha1 verhaal, beide zijn lek. Beide zijn tegenwoordig makkelijk te bruteforcen en kunnen door middel van raibow en dictionary aanvallen boven water gehaald worden.

Lolbroek, een hashingalgoritme *kan* niet "lek" zijn. Het is onomkeerbaar, er gaat data verloren die je dus nooit meer terug kan krijgen.

Daarmee zeg ik dan niet dat je totaal ongelijk hebt: door de onvoorzichtigheid van de meeste mensen is het makkelijk te bruteforcen omdat wachtwoorden vaak maar 6-8 tekens zijn. Dat duurt absoluut niet lang.

Wat je hier tegen kunt doen? Salt en pepper gebruiken, wat een vorm van "security through obscurity" is. Het lijkt veiliger, maar is dat alleen zolang de salt en pepper geheim blijven.

Waar het uiteindelijk op neerkomt is dat het niet zozeer de wachtwoorden zijn waar je je zorgen om moet maken, maar om dat iemand je server binnen kan komen zonder dat je het wil. Niet zo lastig uiteindelijk: zorg ervoor dat (bijvoorbeeld) SSH-toegang alleen met een certificaat mogelijk is. Onmogelijk omheen te komen, omdat zo'n certificaat "raden" eeuwig *kan* duren.

Zelfde met je databaseserver (indien je deze los hebt): zorg ervoor dat je de mogelijke verbindingen beperkt tot IP's waarvan je zeker weet dat het toegestaan moet zijn. SSL is daarbij dan ook weer geen overbodige luxe, dat kan alsnog weer worden onderschept, dan ben je het bokje.

Enfin, mijn punt: veiligheid is beperkt tot het IQ van degene die het ontwerpt.
Merijn schreef op 02.02.2010 18:55
[...]
Er zit een encryptie en decryptie in. [..]


Wat versta jij dan onder decryptie?
edit: @phpNewbie: decryptie van het bericht dat mee gestuurd wordt wellicht?

RSA en AES hebben een geheime sleutel, en coderen een bericht. Dat bericht moet gedecodeerd kunnen worden. ( Denk aan SSL ).. Dit zou je wachtwoord kunnen zijn. Ik bedoel, RSA en AES kunnen voor veel dingen gebruikt worden. Maar als ik het gebruik voor het coderen van wachtwoorden, verzin ik wel een random hash als bericht. Daarmee krijg je je wachtwoord nooit meer terug.

@Richard, toegegeven ze zijn niet lek, maar jij weet net zo goed als veel andere mensen dat MD5 en SHa1 niet veilig meer zijn. Alleen al om de reden dat ze gebruteforced kunnen worden dmv rainbow tables en dictionary aanvallen.

Aangezien MD5 en SHA1 de meest gebruikte hash methoden zijn, is er al heel wat data over bekend, en ook al zijn de algoritmes niet bekend, en zullen ze dat ook niet worden, dan nog ben je kwetsbaar met deze methodes.

Salts bieden tegenwoordig ook echt niet meer de luxe dat het onkraakbaar is, omdat ook de (random) salts opgeslagen moeten worden. Dus als dit al het geval is, en je database is kwetsbaar, waardoor de (random) salts ook boven water komen, kan het alsnog gebruteforced worden.

Maar het klopt wel helemaal wat je zegt. Je beveiliging is zo sterk als het zwakste punt, en dat is vaak de programmeur. Nou kun je stellen dat veel programmeurs een laag IQ hebben , immers, veel systemen zijn niet echt zwaar beveiligd, desalnietemin denk ik niet dat dit het geval is.

Toch raad ik aan een externe class te gebruiken voor encryptie. Niet om het feit dat md5 of sha1 of hash() zo onveilig zijn, maar neem het zekere voor het onzekere. En SSL maakt ook gewoon gebruik van RSA, een certificaat is ook niets meer dan dat jij de publieke sleutel krijgt met handtekening. Alles wat jij verstuurt met die sleutel weet de server( van waaruit het certificaat is uitgegeven ) wel wat er mee moet gebeuren.

En op IP toegang verschaffen biedt natuurlijk ook weer veel onveiligheden. Publieke IP adressen en proxy`s bijvoorbeeld.
Een goede salt doet wonderen.
Ik zeg ook niet dat het onveilig is, het is alleen een stuk onveiliger als je alles codeert door bijvoorbeeld RSA of AES. Ik bedoel, het duurt nog steeds lang als jij een md5 hash gebruikt, maar jij wachtwoord bestaat uit hoofdletters, cijfers en kleine letters. En het geheel is niet een bestaand woord. Dat is nog steeds ontzettend veilig met alleen md5.

Dus ja, een salt zal ik bijna alle gevallen wel goed werken. Maar ik kies er niet meer voor. Ik ga liever voor 5 minuten extra werk, en codeer alles op een manier die niet terug te halen is.

En als jij AES in twijfel trekt, trek jij de gehele Amerikaanse Defensie beveiliging in twijfel. Deze maken gebruik van 1024bit AES encryptie.

Ik gebruik "slechts" 256bits AES momenteel.
Lol ik gebruik altijd een dubbele md5 xD
<?php
$hash = md5(md5($string));
?>

En wat denk je daarmee op te schieten
@Merijn Bedankt, moet inloggen en registreren.
@Nick, hehe dat wist ik niet. Nouja, het is gratis, en als je ingelogd bent, kun je de links gewoon volgen.

Reageren