tot zoquote:Op vrijdag 9 december 2005 14:41 schreef Chandler het volgende:
hmmm... dat is ook wel weer een leuk ideeik ga er ff mee spelen...
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | .fld { margin-left: 16px; } </style> <div class="fld" id="test1"> <img id="test1fld" src="images/foldericon.png"> Folder1 <div class="fld" id="test4"> <img id="test4fld" src="images/foldericon.png"> Folder4 </div> <div class="fld" id="test2"> <img id="tes2fld" src="images/foldericon.png"> Folder2 <div class="fld" id="test3"> <img id="test3fld" src="images/foldericon.png"> Folder3 </div> </div> </div> <div class="fld" id="test5"> <img id="test5fld" src="images/foldericon.png"> Folder5 </div> |
Je kent me een beetje héquote:
MySQL is bij het controleren van een string niet hoofdlettergevoelig. Wat je wel kunt doen is de passwordstring (dus die md5-string) uit je database halen, dan krijg je precies dat wat er ook is ingezet. En dat kun je dan met strcmp weer vergelijken, strcmp moet dan 0 opleveren.quote:Op zaterdag 10 december 2005 12:59 schreef Desdinova het volgende:
Ik heb een soort inlogsysteem gemaakt wat je wachtwoord (md5) checked met het opgegeven md5(wachtwoord) in de database. werkt prima en is op zich wel redelijk veilig denk ik.
punt is, hij is niet hoofdlettergevoelig
is dat te fixen?
Da's logisch toch? "bla" en "BLA" zijn verschillende strings. Het zou heel wat makkelijker kraken worden als dat niet zo was.quote:Op zaterdag 10 december 2005 14:35 schreef Desdinova het volgende:
md5(bla) creeert niet dezelfde waarde als md5(BLA)
dus op die manier is het hoofdlettergevoelig.
Readfile is waarschijnlijk het makkelijkst.quote:Op zaterdag 10 december 2005 14:43 schreef wobbel het volgende:
Hoe kan ik met PHP een bestand doorgeven?
Ik heb blaat.php, en daar wil ik de inhoud van poepchinees.jpg in weergeven. Iets met filepassthrough() ofzo?
readfile idd, ik wou het net posten hier...maar er is er nog 1tje volgensmijquote:Op zaterdag 10 december 2005 14:50 schreef Light het volgende:
[..]
Readfile is waarschijnlijk het makkelijkst.
Niemand die zijn licht kan laten schijnen over bovenstaande post?quote:Op vrijdag 9 december 2005 02:27 schreef JeRa het volgende:
Even een vraagje met betrekking tot security, of iig, het in stand houden daarvan.
(...)
Kort antwoord: Nee. Het kan veel veiliger.quote:Op vrijdag 9 december 2005 02:27 schreef JeRa het volgende:
Even een vraagje met betrekking tot security, of iig, het in stand houden daarvan.
Ik heb hier twee perfect samenwerkende servers staan die vanalles doen, en om dat te managen heb ik in PHP een tool gemaakt genaamd AAP, Ares Administrative Panel (Ares is de naam van de server die o.a. als webserver fungeert). Deze tool is interactief en maakt dus gebruik van STDIN om mijn input te verwerken en draait dus ook onder php-cli, met de rechten van root. Dit is omdat AAP in staat moet zijn user directories te maken en qua rechten goed te zetten, de Apache webserver moet kunnen laten reloaden, en nog veel meer. Dit is op het moment allemaal prima afgeschermd.
Echter wil ik nu alles modulebased opbouwen waarbij ik voor iedere account incluis mezelf (de administrator) een webinterface biedt. Nu moet ik dus in staat zijn om via die webinterface hetzelfde te doen als via AAP, maar gezien PHP via Apache draait heeft het dus zo min mogelijk rechten (wat heel logisch is maar niet door elke webhoster in stand wordt gehouden - dat terzijde) waardoor dat niet mogelijk is. Ik heb dus een manier nodig om een veilige communicatie op te zetten tussen de webinterface en de 'backend' die als root-account aanpassingen aan beide servers doet.
Qua scripten is het voor mij geen probleem dit veilig te doen, het gaat mij vooral om de globale manier waarop ik dit zou moeten doenik had zelf al bedacht dat ik wellicht een backend kon schrijven die als server fungeert en verbindingen accepteert, de verbinding authenticeert en vervolgens bepaalde acties toelaat. Gebruikers moeten overigens straks zelf ook in staat zijn subdomeinen toe te voegen waar een Apache reload voor nodig is.
Hierbij komt een ietwat complexer geheel kijken.quote:Op zaterdag 10 december 2005 17:51 schreef existenz het volgende:
[..]
Schrijf een backend applicatie die de rechten heeft van de user die je laat inloggen. Je php en linux logins zullen dus gelijk moeten zijn en de applicatie zal in iedereen zijn homedir moeten staan met zijn eigen rechten dus bijvoorbeeld:
/home/piet/
piet piet Run.sh
/home/henk/
henk henk Run.sh
Ja, dat doet ongeveer hetgene waar ik op doel, alleen kies jij voor een (misschien wel betere) oplossing waar het op 1 plaats gebeurd, maar de scripts dus meer rechten nodig hebben (denk ik, ik ken je model niet, en dat moet ook niet, anders had je het niet hoeven te bouwenquote:Op zaterdag 10 december 2005 18:15 schreef JeRa het volgende:
[..]
Hierbij komt een ietwat complexer geheel kijken.
Alle userinformatie, inclusief informatie over quotas, webdirectories, e-mailaliassen, etc, etc, wordt opgeslagen in een centrale database. Het is natuurlijk geen goed idee om iedereen toegang te geven tot die gegevens, dus is er een aparte account die alleen dit werk afhandelt.
De gebruikers kunnen zelf straks e-mailaliassen of subdomeinen aanmaken. Als ik dat onder hun account doe moeten ze ook het recht hebben om naam + wachtwoord van de account waarmee die informatie in de database kan worden gewijzigd te achterhalen --> weg veiligheid.
Dus ik had zo bedacht dat alles via één systeem moet lopen waarbij de gebruikers niet de werking van het systeem kunnen achterhalen (immers, alle scripts en wachtwoorden zitten in de bestanden waar zowel de webserver als de accounts op de machine zelf niet bij kunnen). Zou ik niet een zooi aan bash-scriptjes het onderliggende werk kunnen doen (apache reloaden, etc) d.m.v. sudo?
1 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | class Db_functies { // enkele variabalen worden gedefinieerd hier... function Db_functies($user,$pw,$naam) { if (trim($user) == '') { this->fout('Er is geen gebruiker opgegeven'); //Dit is lijn 37!!! } if (trim($pw) == '') { this->fout('Er is geen wachtwoord opgegeven'); } if (trim($naam) == '') { this->fout('Er is geen database opgegeven'); } this->db_user = $user; this->db_pw = $pw; this->db_naam = $naam; this->c_db(); } ?> |
PHP is bijna altijd de $ ervoorquote:Op zaterdag 10 december 2005 21:25 schreef SkaterSam het volgende:
Grrmmmbllllzal je altijd zien, zoiets simpels... danku
Dat soort dingen heb ik ook heel veel hoorquote:Op zaterdag 10 december 2005 21:25 schreef SkaterSam het volgende:
Grrmmmbllllzal je altijd zien, zoiets simpels... danku
Heb je wel display_errors = On staan in php.ini?quote:Op zaterdag 10 december 2005 20:43 schreef SkaterSam het volgende:
Grmmbblll, op een of andere manier krijg ik nooit errors te zien, maar telkens een standaard blanke pagina, maar dat terzijde...
Ik heb tijdens ontwikkeling altijd error_reporting(E_ALL); aanstaan, maar als ik een curly bracket vergeet krijg ik ook een lege page te zien en geen foutmeldingquote:Op zaterdag 10 december 2005 22:46 schreef SuperRembo het volgende:
[..]
Heb je wel display_errors = On staan in php.ini?
Jup, dat heb ik dus ook ja, dus moet ik altijd de fouten uit de error.log lezen, verder niet zo'n probleem, wel een beetje onhandigquote:Op zaterdag 10 december 2005 22:53 schreef Swetsenegger het volgende:
[..]
Ik heb tijdens ontwikkeling altijd error_reporting(E_ALL); aanstaan, maar als ik een curly bracket vergeet krijg ik ook een lege page te zien en geen foutmelding
Dank, ik nietquote:Op zaterdag 10 december 2005 22:46 schreef SuperRembo het volgende:
[..]
Heb je wel display_errors = On staan in php.ini?
weet iemand een leuke windows apache log file parser?quote:Op zaterdag 10 december 2005 22:54 schreef SkaterSam het volgende:
[..]
Jup, dat heb ik dus ook ja, dus moet ik altijd de fouten uit de error.log lezen, verder niet zo'n probleem, wel een beetje onhandig
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 | php session_start(); /* Load main library Files */ require_once ("lib/htconfig.php"); require_once( $GLOBALS['SITE']['LibPath'] . "/main.php"); if(!$_GET['sid']) { $error->Report ("Er is geen (sub)forum ID meegegeven. Bewerking is afgebroken."); } else { $MySQL_Fora_Select = "SELECT IdForumSubCat, ForumCatId, Titel FROM ForumSubCat WHERE IdForumSubCat = '" . addslashes($_GET['sid']) . "' LIMIT 1"; $MySQL_Fora_Query = mysql_query($MySQL_Fora_Select) or die($error->ReportMysqlError(__FILE__, $MySQL_Fora_Select ,__LINE__)); $MySQL_Fora_Numrow = mysql_num_rows($MySQL_Fora_Query); if($MySQL_Fora_Numrow >= 1) { ## Select the main forum Titel and Image $MySQL_Fora_Assoc = mysql_fetch_assoc($MySQL_Fora_Query); $MySQL_Forum_Select = "SELECT IdForumCat, Titel, TitelImage FROM ForumCat WHERE IdForumCat = '" . addslashes($MySQL_Fora_Assoc['ForumCatId']) . "' LIMIT 1"; $MySQL_Forum_Query = mysql_query($MySQL_Forum_Select) or die(mysql_error()); $MySQL_Forum_Assoc = mysql_fetch_assoc($MySQL_Forum_Query); $tml->RegisterVar ("CONTENTTOP", $MySQL_Forum_Assoc['TitelImage']); $tml->RegisterVar ("FORUMTITLE", $MySQL_Forum_Assoc['Titel']); $tml->RegisterVar ("SUBFORUMTITLE", $MySQL_Fora_Assoc['Titel']); ## $MySQL_Topic_Select = "SELECT IdTopic, UserId, Titel, Type FROM ForumTopics WHERE SubCatId = '" . addslashes($_GET['sid']) . "' ORDER BY Date DESC"; $MySQL_Topic_Query = mysql_query($MySQL_Topic_Select) or die(mysql_error()); $MySQL_Topic_Numrow = mysql_num_rows($MySQL_Topic_Query); while($Topic = mysql_fetch_assoc($MySQL_Topic_Query)) { $MySQL_Message_Select = "SELECT TopicId, Datum FROM ForumMessages WHERE TopicId = '" . $Topic['IdTopic'] . "' ORDER BY Datum DESC LIMIT 1"; $MySQL_Message_Query = mysql_query($MySQL_Message_Select) or die(mysql_error() . " op regel: " . __LINE__ . "<br />De betreffende query:" . $MySQL_Message_Select); $MySQL_Message_Assoc = mysql_fetch_assoc($MySQL_Message_Query); $LastPostInTopic = $MySQL_Message_Assoc['Datum']; $MySQL_Reacties_Select = "SELECT COUNT(IdMessage) FROM ForumMessages WHERE TopicId = '" . $Topic['IdTopic'] . "'"; $MySQL_Reacties_Query = mysql_query($MySQL_Reacties_Select); $MySQL_Reacties_Result = mysql_result($MySQL_Reacties_Query, 0); $LoopData = array ( "TITLE" => $Topic['Titel'], "IDTOPIC" => $Topic['IdTopic'], "USERID" => $main->User_Name($Topic['UserId'], 1), "REACTIES" => $MySQL_Reacties_Result, "LASTPOST" => date("d-m-Y H:i:s", $LastPostInTopic), ); $i++; /* Registreren van een Loop */ $tml->RegisterLoop("TOPIC",$i,$LoopData); } /* Load Header file */ $tml->LoadFromFile ("pages/overall_header"); $tml->Parse(); /* Load Page Content */ $tml->LoadFromFile ("pages/forum_subcat"); $tml->Parse(); /* Load Footer file */ $tml->LoadFromFile ("pages/overall_footer"); $tml->Parse(); /* Output Pages */ $tml->Output(); } else { $error->Report ("Het (sub)forum dat je probeert op te vragen is niet gevonden."); } } ?> |
Dat laatste is dus wel de juiste manier, het gaat hier niet om "handig", want misschien gaat het opslaan zo wel sneller, maar het ophalen wel 10x zo traag!quote:Op zondag 11 december 2005 20:15 schreef Swetsenegger het volgende:
Korte vraag,
zoals jullie weten ben ik met een webshop bezig.
Het winkelwagentje is een array, waarbij de key het produkt ID is en de value het aantal.
Nu moet ik deze gegevens op gaan slaan in de db. Zal ik simpelweg de array opslaan in een kolom? Het lijkt me een beetje 'vreemde' oplossing eigenlijk, maar aan de andere kant lijkt het me niet handig wanneer ik elk produkt van de bestelling afzonderlijk in een kolom of rij op ga slaan en vervolgens nog iets van een koppeltable moet maken voor de aantallen.
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |