![]() |
|
Hoi.
![]() Ik ben bezig met een eigen forum aan het schrijven in PHP. Na 2 nachtjes (jaja het ging lekker) heb ik de basisfunctionaliteit aan de praat: plaatsen van berichten, openen van topics, editen van posts en wat kleine dingetjes zijn allemaal werkend. Alleen nog geen beheerderspaneel en geen moderator-functies zoals topic sluiten / naam veranderen en bannen. Test-forum: http://www.fluffles.net/forum Het mooie aan mijn forum:
![]() Ik voorzie wel enkele problemen, zoals een post parser. Dus het omzetten van allerlei tags naar HTML, maar de rest wel door een htmlentities() filter halen om zo XHTML compliance te garanderen. Dat vind ik wel lastig, voornamelijk omdat ik weinig kennis heb van regular expressions. Veiligheid, functionaliteit en snelheid zijn kernpunten bij zo'n parser. Weet iemand van een Open Source parser? Of misschien kan ik de phpbb parser jatten/aanpassen. Tips, commentaar etc. zijn gewenst. ![]() En dit is dus geen sitecheck. Het gaat niet om mijn site of mijn forum, maar de forumsoftware in het algemeen.
__________________
Per undas adversas (tegen de stroom in)
Laatst gewijzigd op 19-01-2005 om 21:25. |
Advertentie | |
|
![]() |
||
Verwijderd
|
Citaat:
![]() Als je je verwijzingen goed aanlegt, kun je een cascade delete doen. Maar of het de allerbeste manier is, weet ik eerlijk gezegd ook niet. |
![]() |
||
Citaat:
__________________
Per undas adversas (tegen de stroom in)
|
![]() |
||
Verwijderd
|
Citaat:
(zie Foreign Key Constrains in MySQL.. ON DELETE CASCADE) Voor UPDATE kun je misschien met een trigger werken, maar dat werkt pas sinds MySQL 5.x. |
![]() |
||
Citaat:
|
![]() |
||
Verwijderd
|
Citaat:
|
![]() |
||
Verwijderd
|
Citaat:
![]() |
![]() |
|||||
Verwijderd
|
Citaat:
Citaat:
Citaat:
Bit0 = closed Bit1 = Hidden 00 = visible, open 01 = visible, closed 10 = hidden, open 11 = etc. Citaat:
Laatst gewijzigd op 19-01-2005 om 12:31. |
![]() |
||
Verwijderd
|
Citaat:
|
![]() |
||
Verwijderd
|
Citaat:
![]() |
![]() |
||||
Citaat:
![]() Citaat:
Citaat:
![]() Nee MySQL is the way voor mij. Open Source is sowieso een vereiste. MySQL levert performance en de nieuwe versies ook aardig wat functionaliteit.
__________________
Per undas adversas (tegen de stroom in)
|
![]() |
||||
Citaat:
Citaat:
Citaat:
__________________
Per undas adversas (tegen de stroom in)
|
![]() |
||
Verwijderd
|
Citaat:
@Enlightenment: Ziet er puik uit. Wat voor manier om het secure te houden gebruik je? Trouwens, als je alsnog oracle wilt gebruiken kan je hier een 200MHz servertje voor geinstalleerd me Netware & Oracle komen ophalen ![]() |
![]() |
||
Verwijderd
|
Citaat:
|
![]() |
|||
Citaat:
En uiteraard is alles GPC safe, of magic_quotes_gpc nu aanstaat of uitstaat. Het script maakt verder gebruik van mod_rewrite die alles naar 1 script stuurt, dus rondnneuzen is er niet echt bij. Al met al best veilig denk ik. De accounts zelf zijn sterk beveiligd. IP-locks en sessies met geavanceerde checks, dat zit wel goed. ![]() Als je het hebt over dingen als flood protection; dat heb ik nog niet ingebouwd. Citaat:
![]() Gelezen wat ze met Peoplesoft hebben gedaan? ![]()
__________________
Per undas adversas (tegen de stroom in)
|
![]() |
||||
Verwijderd
|
Citaat:
select usr.name from topic join user as usr on usr.id = topic.usr_id_topcistart where topic.id = 8 Voor optimale performance ligt hier een index op user.id, topic.id en topic.usr_id_topicstart. Citaat:
Bit3 = admin only 101 = admin, visible, closed Citaat:
|
![]() |
||||
Citaat:
SELECT * FROM `users`,`groups` WHERE `users`.`goup` = `groups`.`id` AND `users`.`id` = 502; Maar dat van jou is beter? Citaat:
![]() Citaat:
![]() SQL moet je in het begin goed overna denken, maarja de rest kan ik altijd later nog aanpassen denk ik. Wel een aantal keuzes die je maakt, parse ik de berichten per pageview of wanneer de user een post opstuurt. Ik heb voor het eerste gekozen. Stel het staat verkeerd in de db, dan nog is er geen gevaar. Daarnaast kom je dan niet aan de post, als de user die wilt editen zie je daar geen lelijke dingen door de parser gedaan. B.v. op dit forum zie je blabla@bla.com als je blabla@bla.com ingetypt hebt en daarna wilt editen. Lijkt me mooier om dat dus niet te doen. Maarja is wel weer intensiever misschien. Performance is nog een groot punt.
__________________
Per undas adversas (tegen de stroom in)
|
Advertentie |
|
![]() |
|||
Verwijderd
|
Citaat:
In jou situatie wordt eerst alle records van de tabellen dmv een cross join bij elkaar gehaald (je krijgt dus een cartetisch (of hoe schrijf je dat) product). Elk record in tabel 1, wordt gelinkt aan alle records van tabel 2. Je tussentijdse resultaat is dus erg groot. Op dit tussentijdse resultaat wordt vervolgens je where toegepast. Op de 'echte' manier, zoals ik liet zien, is je tussentijdse resultaat al een stuk kleiner, omdat je direct filtert op één (of meer) voorwaarde(s). Citaat:
|
![]() |
||||
Citaat:
Citaat:
![]() React dan. Maar net zoveel features denk ik niet, React is enorm uitgebreid. Maar wel het soort handigheidjes dat ik op GoT zie. Citaat:
![]() Jouw manier zal een stuk meer toekomstbestendig zijn, op dit moment gebruik ik functies. Als een functie nog niet gedefinieerd is door config.php, dan gebruikt hij de default functie (die ik nu gebruik, daarom is alles engels). Ik wil ook eerst het functioneel hebben, mocht ik later een mooi deftig templating systeem willen maken kan dat altijd nog. Lijkt me wel veel werk. :/
__________________
Per undas adversas (tegen de stroom in)
|
![]() |
||
Verwijderd
|
Citaat:
Als jij PHP code moet schrijven en meerdere SQL commando's moet uitvoeren in MySQL om iets te doen wat ik met een trigger in PostgreSQL kan doen, wat zal er dan sneller zijn denk je? Scenario voor je keywords bij het wijzigen van een bericht: PHP -> MySQL (update post) -> PHP -> MySQL (update keywords) PHP -> PostgreSQL (update post, trigger regelt keywords automatisch) Alleen omdat MySQL een redelijk goede SELECT performance heeft, is het niet per definitie een betere oplossing dan PostgreSQL. |
![]() |
||
Citaat:
![]()
__________________
Slechts beschikbaar via naamzoek/privebericht.
|
![]() |
||
Citaat:
![]()
__________________
Slechts beschikbaar via naamzoek/privebericht.
|
![]() |
||
Citaat:
De benchmarks die ik heb gezien, waaronder vrij ingewikkelde SELECT en INSERT statements, geven een eenduidig beeld weer: MySQL is vele malen sneller. Als MySQL 5.x veel nieuwe functionaliteit toevoegt waar PGSQL het van moet hebben, is voor mij de keus ook vrij eenvoudig gemaakt.
__________________
Per undas adversas (tegen de stroom in)
|
![]() |
||
Citaat:
Maar betekent niet dat ik het niet wil ofzo, maar ik kies liever voor een forum dat binnen een week aardig compleet is, dan dat ik een maand met een niet-functioneel forum zit. ![]() Even overdreven gezegd.
__________________
Per undas adversas (tegen de stroom in)
|
![]() |
||
Verwijderd
|
Citaat:
Wanneer je vanaf het begin al rekening kunt houden met templates en security, is het makkelijker te programeren/onderhouden dan wanneer je alles achteraf moet inbouwen. |
![]() |
||
Verwijderd
|
Citaat:
|
![]() |
||
Citaat:
![]() Ik heb al eerder XSLT voorgesteld als templating system aan Enlightenment. ![]()
__________________
Slechts beschikbaar via naamzoek/privebericht.
|
![]() |
||
Verwijderd
|
Citaat:
![]() Maar een template systeem is iig heel belangrijk ![]() |
![]() |
||
Verwijderd
|
Citaat:
Het probleem met fora; Het moet echt iets anders bieden. Er zijn er een paar 100. VBB is heel gaaf maar heel duur. phpBB2 en YaBB zijn wel leuk maar missen vaak security en features. Ze zijn dan wel weer gratis en phpBB2 is niet al te langzaam. |
![]() |
||
Verwijderd
|
Citaat:
Ligt natuurlijk maar net waar je het voor gebruikt, maar voor bijvoorbeeld hier is het zeker geen miskoop.. Het is vele malen beter dan phpBB.. Maar een eigen forum maken is leuker... |
![]() |
|||
Citaat:
Citaat:
Het voordeel van sessies op deze manier, is dat deze niet je wachtwoord verklappen of maskeren. Als je de MD5 hebt van het wachtwoord kun je altijd inloggen gewoon, totdat het wachtwoord wordt veranderd. Bij sessies zal een sessie sowieso verlopen na x aantal dagen (ik heb de sessie ttd (time to die) ingesteld op 30-dagen). Daarnaast kan de gebruiker na het inloggen zien welke sessies er worden gebruikt en deze ook killen. Al met al een van de veiligste server-side accountbeveiligingen denk ik, alleen cookies worden gebruikt verder geen client-side (javascript) shit. Daarnaast ga ik in de toekomst bij het inloggen verschillende opties geven, zoals een optie "Publieke computer". Als je deze optie aanvinkt, zal je cookie met bijbehorende Session ID verwijderd worden zodra je de browser afsluit. Tevens is de timetodie op een dag ingesteld. Al met al vrij veilig denk ik. ![]()
__________________
Per undas adversas (tegen de stroom in)
|
![]() |
||
Citaat:
![]()
__________________
Per undas adversas (tegen de stroom in)
|
![]() |
||
Verwijderd
|
Citaat:
![]() (Krijg ik dan credits in een ver weggedrukt filetje? ![]() |
![]() |
||
Citaat:
![]() kga nu quotes enzo werkend maken ![]()
__________________
Per undas adversas (tegen de stroom in)
|
![]() |
||||
Citaat:
Als je bij mij inlogt, worden je gebruikersnaam en wachtwoord ongecodeerd naar de server gestuurd. Daar wordt het wachtwoord met md5 gecodeerd en vergeleken met het wachtwoord in de database (dat ook md5 is). Dan kunnen mensen toch niet inloggen als ze alleen de md5-dinges hebben? Want als ze dat dan invoeren, wordt dat ook weer md5 gecodeerd en dan verandert het dus. Toch? Verder snap ik ook niet zo goed waarom je je sessies moet beveiligen. Ik maak gewoon een sessie met de user_id, de username en het emailadres aan en die laatste twee eigenlijk ook alleen maar zodat ik ze niet steeds uit de db hoef te halen, het wachtwoord komt dus niet in een sessie. Alles werkt verder via $_SESSION[ 'user_id'], als die bestaat is iemand ingelogd en anders niet. Is dit echt zo onveilig? (en waarom?) Citaat:
Verder snap ik het probleem met die htmlentities() niet zo. Als je die functie gewoon gebruikt op het bericht dat je in de db gaat zetten en er dan rekening mee houdt in je regular expressions, dan werkt het toch gewoon? Misschien dat je nu gewoon een nieuwe post naar de database stuurt en dan pas htmlentities() gebruikt nadat je [img] hebt vervangen door <img ... >. Dan zal het inderdaad wel niet werken, maar als je zorgt dat die echte html-tags (van <img ... > ) pas worden neergezet nadat je htmlentities hebt gebruikt, dan moet het werken toch? Citaat:
Sorry voor de vele vragen...
__________________
Mommy, that salesman's on TV!
|
![]() |
|||||||
Citaat:
![]() Maar als je forum een hobbyprojectje is en usersecurity geen prioriteit is, hoeft het geeneens zo erg te zijn. Citaat:
Citaat:
Citaat:
Citaat:
![]() ![]() Citaat:
![]() Om dat te voorkomen is het belangrijk dat GPC geen " of ' kan bevatten. Een functie zoals mysql_escape_string() plaats / slashes voor elke " of '. MySQL zal daardoor het teken erna als teken behandelen, en niet de string escapen. Hierdoor blijft alles wat van GPC afkomt als string en niet als data/instructies. magic_quotes_gpc is een configuratie optie in php.ini die automatisch alle GPC-variabelen escaped, zodat je ze direct in SQL statements kunt gebruiken zonder mysql_escape_string() functie. Je kunt ze ook uitzetten als je zelf netjes met de code omgaat, zoals ik doe. Dat heeft wat andere voordelen. mod_rewrite gebruik ik om ALLE requests naar 1 php file te sluizen. Mensen kunnen dus niet directories op de server rondneuzen en direct php scripts aanroepen. Dat vermindert de kans op hack-acties ook enigszins. Alles komt binnen op een centraal script die vervolgens de juiste scripts aanroept afhankelijk van de url. Daardoor krijg je ook mooie URLs, geen: http://forum.fluffles.net/viewforum.php?f=7 Maar: www.fluffles.net/forum/devschuur en voor een topic: www.fluffles.net/forum/devschuur/5 Staat een stuk professioneler vind ik.
__________________
Per undas adversas (tegen de stroom in)
|
Advertentie |
|
![]() |
|
|
![]() |
||||
Forum | Topic | Reacties | Laatste bericht | |
De Kantine |
De kleur van jouw forum Verwijderd | 84 | 30-05-2010 22:21 | |
Psychologie |
Diepzeechatten: van chatten naar verkenchatten Waterput | 12 | 02-01-2008 10:01 | |
Beleidszaken |
[Films & TV] Spoilers Enfant Terrible | 55 | 08-07-2003 00:59 | |
Psychologie |
Haat mezelf Snippie | 50 | 03-11-2002 16:03 | |
De Kantine |
De BrEeZaH-cultuur, de ontwikkeling van een internetgeneratie. Verwijderd | 96 | 29-08-2002 11:32 | |
Drugs & Alcohol |
Het gebruik van middelen Internationalist | 6 | 20-04-2002 10:39 |