Zoals wij al zeidenquote:Op zondag 20 mei 2007 19:02 schreef JohannesPaulus het volgende:
Bedankt voor de reacties.
Ik heb het inmiddels opgelost:
// ini_set('error_reporting', E_ALL);
![]()
Makkelijk: Ja, handig: Nee.quote:Op zondag 20 mei 2007 19:04 schreef JortK het volgende:
[..]
Zoals wij al zeiden
Misschien makkelijk om in je PHP pagina error_reporting(E_ALL); neer te zetten, en standaard te commenten, en wanneer je wil debuggen de comment weghalen
Dan natuurlijk wel de error_reporting een toontje lager zetten in je PHP.ini
quote:Op zondag 20 mei 2007 19:04 schreef JortK het volgende:
[..]
Zoals wij al zeiden :Y
Misschien makkelijk om in je PHP pagina error_reporting(E_ALL); neer te zetten, en standaard te commenten, en wanneer je wil debuggen de comment weghalen
Dan natuurlijk wel de error_reporting een toontje lager zetten in je PHP.ini :Y
| 1 2 3 | if (isset($_GET['debug'])) error_reporting(E_ALL); ?> |
Klopt Jera, maar er zou toch ook een andere manier moeten zijn om plaatjes te kunnen resizen in PHP zonder al te veel geheugen te gebruiken.quote:Op zaterdag 19 mei 2007 17:32 schreef JeRa het volgende:
[..]
Via een externe editor misschien wel (ImageMagick bijvoorbeeld). Het probleem met afbeeldingen van 2-4MB (JPEGs?) is dat de raw pixel info véél groter is dan het bestand zelf. Dan kom je al gauw aan de 20MB, maar door een ander programma binnen PHP aan te roepen omzeil je dat
Misschien tussendoor de boel flushen?quote:Op zondag 20 mei 2007 21:00 schreef Chandler het volgende:
[..]
Klopt Jera, maar er zou toch ook een andere manier moeten zijn om plaatjes te kunnen resizen in PHP zonder al te veel geheugen te gebruiken.
Want als ik 3MB foto wil lezen ben ik toch max 3*8=24MB aan geheugen nodig? zou je denken?
Ik heb 32MB geheugen toegeschreven aan het script maar nog krijg ik een geheugen fout
volgens mij pakt ie dan alles van 14 dagen voor de datum van vandaag, dus het verleden in, ik moet de toekomst in.quote:
dan krijg ik een fout , => bestaat dat wel?quote:Op zondag 20 mei 2007 23:14 schreef JortK het volgende:
WHERE aankomstdatum => DATE_SUB dan ?
Probeer >= eens ipv =>quote:Op zondag 20 mei 2007 23:22 schreef broodmonkeh het volgende:
[..]
dan krijg ik een fout , => bestaat dat wel?![]()
Ik heb m aangepast hij moet andersom staan het word laatquote:Op zondag 20 mei 2007 23:22 schreef broodmonkeh het volgende:
[..]
dan krijg ik een fout , => bestaat dat wel?![]()
zoals je kon zien stond dat al in mijn query die ik al had , en die pakt alles na 14 dagen na de datum van vandaag. ik moet tot 14 dagen hebben.quote:
Haha ben lekker aan het deven. Moet eingelijk nog ff weten hoe ik de stand van de zon op een plaatje laat zien maar dat komt later wel eerst andere dingenquote:Op zondag 20 mei 2007 23:23 schreef JortK het volgende:
[..]
Ik heb m aangepast hij moet andersom staan het word laat
EDIT: WyriHaximus is zo te zien nog wel wakker
Ow heh niet eens gelezenquote:Op zondag 20 mei 2007 23:24 schreef broodmonkeh het volgende:
[..]
zoals je kon zien stond dat al in mijn query die ik al had , en die pakt alles na 14 dagen na de datum van vandaag. ik moet tot 14 dagen hebben.![]()
nope gewoon 0000-00-00 formaat zeg maarquote:Op zondag 20 mei 2007 23:26 schreef WyriHaximus het volgende:
[..]
Ow heh niet eens gelezen, zag dat je foutje had en dacht hij moet dat niet anders om
. Ff kijken er naar.
EDIT: Is het field een UNIXTIMESTAMP of niet?
Mocht het een UNIXTIMESTAMP zijn dan kan je zoiets doen ena nders moet je ff converters toevoegenquote:Op zondag 20 mei 2007 23:26 schreef WyriHaximus het volgende:
[..]
Ow heh niet eens gelezen, zag dat je foutje had en dacht hij moet dat niet anders om
. Ff kijken er naar.
EDIT: Is het field een UNIXTIMESTAMP of niet?
| 1 |
Ow erhm secquote:Op zondag 20 mei 2007 23:32 schreef broodmonkeh het volgende:
[..]
nope gewoon 0000-00-00 formaat zeg maar
Ow oops:quote:Op zondag 20 mei 2007 23:44 schreef broodmonkeh het volgende:
bedankt! ik krijg alleen deze error:
Unknown column 'UNIX_TIMESTAMP' in 'where clause'
| 1 |
Npquote:
Je zou denken dat dat zou werken, maar helaas... Ik ga morgen eens een testje bouwen om te kijken hoeveel geheugen er gebruikt wordt!quote:
jaa ongeveer wel , hij pakt de datum uit de database en zet die om naar unix timestamp , en zo berekend ie het. toch ?quote:Op zondag 20 mei 2007 23:55 schreef WyriHaximus het volgende:
[..]
Np. Je snapt trouwens hoe het werkt?
Zoniet dan leg ik het wel ff uit
.
Het kan natuurlijk ook misschien zijn dat er ergens een loopje inzit wat heel het geheugen volpomptquote:Op maandag 21 mei 2007 07:59 schreef Chandler het volgende:
[..]
Je zou denken dat dat zou werken, maar helaas... Ik ga morgen eens een testje bouwen om te kijken hoeveel geheugen er gebruikt wordt!
Sorry hoorquote:
Dit kan je het beste oplossen in je queryquote:Op maandag 21 mei 2007 17:02 schreef broodmonkeh het volgende:
Situatie: Ik heb 80 getallen (1 - 80) in een dropdown box staan.
In de database heb ik in een veld het getal 50 staan (veldnaam is bijv. "Getal") . Nu wil ik dat deze niet wordt weergeven in de dropdown box. Kan iemand uitleggen hoe ik dit simpel kan oplossen? Een stukje code of uitleg is genoeg , ik wil het namelijk zelf een beetje uitvogelen maar ik weet niet waar ik moet beginnen
| 1 2 3 | FROM tabel WHERE Getal <> 50 |
jaa zoiets maar er staan ook meerdere velden in en het kan ook voorkomen dat bijv. alle 80 getallen in de database staan en niet weergeven mogen worden.quote:Op maandag 21 mei 2007 17:08 schreef JortK het volgende:
[..]
Dit kan je het beste oplossen in je query
[ code verwijderd ]
Hiermee haal je alle getallen op behalve 50
Bedoel je zoiets?
Ja dan zul je toch wat meer info moeten geven om te vertellen op basis van welke criteria een gebruiker welke getallen mag zienquote:Op maandag 21 mei 2007 17:14 schreef broodmonkeh het volgende:
[..]
jaa zoiets maar er staan ook meerdere velden in en het kan ook voorkomen dat bijv. alle 80 getallen in de database staan en niet weergeven mogen worden.
| 1 2 3 | echo("string $_SERVER['REMOTE_ADDR'] verder met string"); ?> |
maar dit:quote:Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in test.php on line 2
| 1 2 3 4 | $ip = $_SERVER['REMOTE_ADDR']; echo("string $ip verder met string"); ?> |
| 1 2 3 | echo "string ".$_SERVER['REMOTE_ADDR']." verder met string"; ?> |
| 1 2 3 | echo "string {$_SERVER['REMOTE_ADDR']} verder met string"; ?> |
Dan zou ik alle 80 getallen in een array zetten, en een andere array maken met de getallen die niet voor mogen komen. Daarna kan je door je ene array heenloopen en die met in_array checken tegen de andere array en de foute waardes uit je ene array halen (of een derde array maken met de goede waardes)...quote:Op maandag 21 mei 2007 17:14 schreef broodmonkeh het volgende:
[..]
jaa zoiets maar er staan ook meerdere velden in en het kan ook voorkomen dat bijv. alle 80 getallen in de database staan en niet weergeven mogen worden.
Ik zal het ff goed en uitgebreid uitleggen deze keer. Ik ben bezig met een boekingsregistratiesysteem voor een camping. Hier zijn dus iets van 80 staanplaatsen (precieze aantal weet ik niet , maar daar komt het in de buurt). Nu heb ik zeg maar deze opbouw in tabellen:quote:Op maandag 21 mei 2007 19:25 schreef Xcalibur het volgende:
[..]
Dan zou ik alle 80 getallen in een array zetten, en een andere array maken met de getallen die niet voor mogen komen. Daarna kan je door je ene array heenloopen en die met in_array checken tegen de andere array en de foute waardes uit je ene array halen (of een derde array maken met de goede waardes)...
Daarnaast vraag ik me af waarom je 1 - 80 in een database zou zetten?
You read my mindquote:Op maandag 21 mei 2007 19:25 schreef Xcalibur het volgende:
[..]
Dan zou ik alle 80 getallen in een array zetten, en een andere array maken met de getallen die niet voor mogen komen. Daarna kan je door je ene array heenloopen en die met in_array checken tegen de andere array en de foute waardes uit je ene array halen (of een derde array maken met de goede waardes)...
Daarnaast vraag ik me af waarom je 1 - 80 in een database zou zetten?
Ja idd, op ze simpelst wel ja. Hij pakt de huidige datem en zegt dat de datem in de tabel minimaal die datum moet hebben em pakt 14 dagen voor uit en zegt dat de datum daar niet voor bij mag liggenquote:Op maandag 21 mei 2007 12:42 schreef broodmonkeh het volgende:
[..]
jaa ongeveer wel , hij pakt de datum uit de database en zet die om naar unix timestamp , en zo berekend ie het. toch ?![]()
Je moet de ' jes weg halen, of { en } er om heen zetten zoals hier boven. Maar 2e stukkie code is eingelijk het netst :).quote:Op maandag 21 mei 2007 17:48 schreef mschol het volgende:
iemand een idee waarom php hier een foutmelding op geeft...:
[ code verwijderd ]
foutmelding:
[..]
maar dit:
[ code verwijderd ]
werkt wel??
wat is het verschil tussen die 2 variabelen????
| 1 2 3 | echo "string $_SERVER[REMOTE_ADDR] verder met string"; ?> |
| 1 2 3 | echo "string " . $_SERVER['REMOTE_ADDR'] . " verder met string"; ?> |
Interessant artikel over quotes en performance in PHP.quote:Op maandag 21 mei 2007 20:42 schreef WyriHaximus het volgende:
[..]
Je moet de ' jes weg halen, of { en } er om heen zetten zoals hier boven. Maar 2e stukkie code is eingelijk het netst.
[ code verwijderd ]
[ code verwijderd ]
Yeah klopt " geeft je extra opties zoals "balbla $str jaskj" daar de waarde van $str er tussen worden gezet terwijl bij ' het niet geparsed zal worden en gewoon als $str in de string staanquote:Op maandag 21 mei 2007 22:35 schreef fokME2 het volgende:
[..]
Interessant artikel over quotes en performance in PHP.
![]()
intressantquote:Op maandag 21 mei 2007 22:35 schreef fokME2 het volgende:
[..]
Interessant artikel over quotes en performance in PHP.
![]()
Ik heb er een paar maanden terug eens een uurtje over nagedacht, en kwam toen tot hetvolgende systeem:quote:Op maandag 21 mei 2007 23:01 schreef mschol het volgende:
[..]
intressant![]()
nog iets: ik heb eens zitten googlen op een "veilig" inlog systeem via php+sessies
kwam ik op dit script uit:
http://e-programmeur.e-dot.nl/topic/45924
alleen lijkt het mij zo overdreven veel, dat zou toch makkelijker moet kunnen, zonder een challenge-response systeem?
overigens vind ik persoonlijk dat ik erg weinig tutorials vind met een session login m.b.v. php (en met een remember functie kan ik ze al helemaal niet vinden)
| 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 | // TRY TO SOMEHOW RECEIVE THE USERNAME AND PASSWORD if (isset($_POST['action'])){ $action = $_POST['action']; switch($action){ case "login": $username_to_try = $_POST['username']; $password_to_try = md5($_POST['password']); break; case "register"; $newusername = $_POST['username']; $newpassword = md5($_POST['password']); $newpasswordrepeat = md5($_POST['passwordrepeat']); $newemailaddress = $_POST['emailaddress']; if (newUser($newusername, $newpassword, $newpasswordrepeat, $newemailaddress)){ $username_to_try = $newusername; $password_to_try = $newpassword; } break; } } else if (isset($_COOKIE['UsernameCookie']) && isset($_COOKIE['PasswordCookie'])){ $username_to_try = $_COOKIE['UsernameCookie']; $password_to_try = $_COOKIE['PasswordCookie']; } else if (isset($_SESSION['UsernameSession']) && isset($_SESSION['PasswordSession'])){ $username_to_try = $_SESSION['UsernameSession']; $password_to_try = $_SESSION['PasswordSession']; } // CHECK USERNAME AND PASSWORD IF REQUESTED if (isset($username_to_try) && isset($password_to_try)){ [.database check.] $_SESSION['UsernameSession'] = $username_to_try; $_SESSION['PasswordSession'] = $password_to_try; setcookie("UsernameCookie", $username_to_try, time()+604800); setcookie("PasswordCookie", $password_to_try, time()+604800); header("Location: userpage.php"); } ?> |
Dat plus dat je alles wat van de client komt niet kan vertrouwen en er van uit moet gaan dat het foutief is, dan kom je heel erg ver.quote:Op dinsdag 22 mei 2007 00:02 schreef Tuvai.net het volgende:
Veilige scripts komen in feite maar op twee dingen neer: SQL injection en logica.Persoonlijk vind ik dat ELK variabel dat gemanipuleerd kan worden door user input afgeschermd moet worden, waaronder ook de variabelen die niet direct in een SQL query gebruikt worden. Ook encryptie vind ik persoonlijk een hele belangrijke. Ik zie het maar al te vaak: websites die een username/userID en een wachtwoord in een cookie zetten waarmee een gebruiker ingelogd blijft. Op zich niks mis mee, maar zorg dan wel dat dat wachtwoord geëncrypt word. MD5 en SHA1/2 zijn daar gewoon perfect voor en kinderlijk eenvoudig te gebruiken.
Ik herinner me nog de tijd dat ik $var gebruikte in plaats van $_GET['var'] / $_POST['var'] / $_COOKIE['var'] / $_COOKIE['var'] en niks afschermde met mysql_real_escape_string() en intval().quote:Op dinsdag 22 mei 2007 00:49 schreef WyriHaximus het volgende:
[..]
Dat plus dat je alles wat van de client komt niet kan vertrouwen en er van uit moet gaan dat het foutief is, dan kom je heel erg ver.
Nog een kleine tip: Probeer je eigen scripts te hacken en kijk of je langs je eigen beveiliging kan komen. Of vraag een vriend of kennis met kennis van zaken, buitenstaanders hebben vaak een frisse kijk en zullen eerder dingen tegen komen dan jij omdat je snel genoeg dood staart of denkt dat iets wel veilig is. Je komt dan nog wel eens dingen tegen die niet helemaal kloppen.
Ja hier ook. En het dan raar vinden dan je scripts ineens niet meer werken omdat je host register_globals uitgezet hadquote:Op dinsdag 22 mei 2007 00:56 schreef Tuvai.net het volgende:
[..]
Ik herinner me nog de tijd dat ik $var gebruikte in plaats van $_GET['var'] / $_POST['var'] / $_COOKIE['var'] / $_COOKIE['var'] en niks afschermde met mysql_real_escape_string() en intval().En ik me maar afvragen hoe al die mensen hunzelf allemaal Administrator van m'n forum konden maken.
Maarja, wel toendertijd een hoop van geleerd.
quote:Op maandag 21 mei 2007 19:36 schreef broodmonkeh het volgende:
Als de camping nu een staanplaats wil toevoegen aan de camping wil ik dat alleen de beschikbare staanplaatsen in een dropdown box komen. Misschien is er wel een simpelere manier voor maar dan hoor ik het graag![]()
dat laatste heb ik alquote:Op dinsdag 22 mei 2007 11:43 schreef Xcalibur het volgende:
[..]
Met een (LEFT OUTER?) JOIN op de tabel met boekingen. Dan kan je alle records uit je tabel halen die geen overeenkomstig record in de andere tabel hebben
Ik zou bij de boeking ook een begin- en einddatum opslaan trouwens, zodat staanplaatsen ook automatisch vrijkomen als de boeking afgelopen is... maar dat is misschien stap 2
je wilt queries opzoeken in een databasequote:Op dinsdag 22 mei 2007 13:57 schreef WalkingDisaster het volgende:
Goeiemiddag
Ik zoek een php script waarmee ik queries in een database kan opzoeken en eventueel aanpassen
soort klantenbeheer zeg maar
Thnx vast
Sorry, ik heb een script dat "klanten" toevoegd aan eendatabase, nu zoek ik een script waarmee ik de database kan doorzoeken, en eventueel gevonden klanten kan wijzigen ofzoquote:Op dinsdag 22 mei 2007 14:07 schreef mschol het volgende:
[..]
je wilt queries opzoeken in een database
kan je jezelf even verduidelijken door je situatie uit te leggen..
even heel simpel:quote:Op dinsdag 22 mei 2007 14:09 schreef WalkingDisaster het volgende:
[..]
Sorry, ik heb een script dat "klanten" toevoegd aan eendatabase, nu zoek ik een script waarmee ik de database kan doorzoeken, en eventueel gevonden klanten kan wijzigen ofzo
| 1 2 3 4 5 6 7 8 9 10 | <head> </head> <body> <form action="klanten.php" method="post"> <input type="text" name="naam"> <input type="submit"> <input type="hidden" name="sid" value="729016f035787bdbd61fb8c1d1fac43b" /></form> </body> </html> |
| 1 2 3 4 5 6 7 8 9 10 11 12 | mysql_connect(); mysql_select_db(); $klant_naam = mysql_real_escape_string($_POST['naam']); $result = mysql_query("SELECT * from tabel WHERE naam LIKE '%$klant_naam%'"); echo("<tabel>"); while($rij = mysql_fetch_assoc($result)) { echo("<tr><td>$rij['naam']</td></tr>"); } echo("</tabel>"); ?> |
Is phpMyAdmin iets voor je?quote:Op dinsdag 22 mei 2007 14:09 schreef WalkingDisaster het volgende:
[..]
Sorry, ik heb een script dat "klanten" toevoegd aan eendatabase, nu zoek ik een script waarmee ik de database kan doorzoeken, en eventueel gevonden klanten kan wijzigen ofzo
Volgens mij heeft dat niet met exif info te maken, maar met CMYK en RGB jpg'squote:Op woensdag 23 mei 2007 21:52 schreef Desdinova het volgende:
Ik heb gemerkt dat het verwerken van een foto dmv imagecreatfromjpeg (bijv) niet altijd werkt.. afbeeldingen die bijv. camera informatie erin hebben staan geven een error. iets met geen valid file ofzo.. is daar iets aan te doen? want het staat zo knullig dat je eerst het jpeggie opnieuw moet opslaan voor hij het wel doet
ohhhh dat zou ook kunnen.. ik ga s ff googlen.quote:Op woensdag 23 mei 2007 22:15 schreef Swetsenegger het volgende:
[..]
Volgens mij heeft dat niet met exif info te maken, maar met CMYK en RGB jpg's
Over het algemeen niet zo'n probleem omdat 99% van de jpg's RGB zijn, maar ik ben daar ook wel tegen aangelopen met de zakelijk website. Productfoto's zijn namelijk zeer highres CMYK's.quote:Op woensdag 23 mei 2007 22:17 schreef Desdinova het volgende:
[..]
ohhhh dat zou ook kunnen.. ik ga s ff googlen.
gevonden idd.. werkt niet, kan GD niet aan (2.0 ook niet).
Nasty.
Je complete sourcecode encrypten?quote:Op woensdag 23 mei 2007 22:28 schreef Swetsenegger het volgende:
Een andere vraag. Ik ben momenteel een universeel cms'je aan het bouwen waarvoor ik al wat kleine klantjes heb. Een daarvan is een webdesignertje die goed met html is, maar niet met scripting.
Maar ik loop nu theoretisch het 'gevaar' dat hij mijn cmsje oppakt en ergens anders neerzet. Wat templates aanpassen en hoppa. Het draait natuurlijk allemaal op virtuele domeinen dus er is geen kans om serverside te gaan obfuscaten of iets dergelijks.
Nu kan ik natuurlijk ergens in de code een licentie file importeren vanaf mijn eigen domein die dat matched met het domein waar het cms draait ofzo, maar iemand met een beetje script kennis weet dat uiteindelijk wel te vinden.
Iemand een idee hoe je redelijk verstopt een licentie in je code kan proppen?
Past hier eigenlijk goed.quote:Op woensdag 23 mei 2007 23:00 schreef mstr het volgende:
Wij hebben een aantal vragen op school waar we query's voor moeten schrijven zodat je de de goede uitkomst krijgt.
Ja dit is huiswerk en het lukt me zelf niet
De 6 vragen waar ik niet uitkom
1. Soms wordt een nummer maar door een aantal artiesten gecoverd. Soms hebben nummers dezelfde titel, maar lijken ze niet op elkaar. Maak een overzichtje van titels, gezongen door meerdere artiesten, die meer dan twee keer in de lijst van 2005 voorkomen. (Gebruik hier zeker een subquery!)
Zet steeds bij elke titel, de hoogste genoteerde plaat bovenaan.
Het gene wat eruit zou moeten komen:
[afbeelding]
2. Hoeveel artiesten staan er in de top 2000 van 2005? (Dit is een lastige!)
Het gene wat eruit zou moeten komen:
[afbeelding]
3. Paul McCartney heeft naast vele hits met de Beatles en zijn band "Wings", ook deutten opgenomen. Maak een query die alleen deze deutten (de hits samen met de band Wings worden uitgesloten) weergeeft. Raadpleeg de stemlijst.
Het gene wat eruit zou moeten komen:
[afbeelding]
4. Carole King vertolkte het nummer 'You've got a friend'.
Welk nummer duurt precies even lang als dit nummer? (Tip: Gebruik subquery!)
Het gene wat eruit zou moeten komen:
[afbeelding]
5. Welke nummers staan in 2005 op dezelfde plek als het jaar ervoor?
Het gene wat eruit zou moeten komen:
[afbeelding]
6. Ondanks het enorme aantal noteringen, bleven er in 2005 toch Beatle-nummers buiten de Top2000, ondanks de vermelding op de stemlijst.
Welke waren dat? En uit welk jaar kwamen die?
Het gene wat eruit zou moeten komen:
[afbeelding]
Ik zie bij die sourcegardian ook dat er geen serverside sleutel is en er wordt een sleutelbestand bij de sources geplaatst. Volgens mij wordt het dan nog redelijk eenvoudig om de boel te decryptenquote:Op woensdag 23 mei 2007 23:00 schreef JeRa het volgende:
Let op met die PHP 'encrypters'. Het is voor iemand met verstand belachelijk simpel om de PHP opcodes te onderscheppen en alsnog je beveiliging te omzeilen
Precies, met source encrypting kan iemand nog de volledig encrypted source ergens anders neergooien. Zit je hooguit nog met templatesquote:Op woensdag 23 mei 2007 23:01 schreef JortK het volgende:
Dat is volgens mij niet echt waar hij naar op zoek is, hij wil voorkomen dat iemand 1 versie van de software door meerdere klanten laat gebruiken
Maar een beetje slimme jongen sloopt die compare-code gewoon uit de source.... weg beveiliging.quote:Ik denk dat je een check moet maken met een sleutel die je in je database zet + URL die gebruikt wordt, en die comparen met een value in je eigen database, wil je het behoorlijk zeker maken
Ik heb al téveel geprobeerd, heb er al 1½ uur aan besteed zonder maar enig resultaatquote:Op woensdag 23 mei 2007 23:05 schreef JeRa het volgende:
@mstr
Wat heb je zelf al geprobeerd en waar loop je op vast?
Heel simpel, als je de compare niet kunt maken met je applicatie geef je de melding License truncatedquote:Op woensdag 23 mei 2007 23:07 schreef Swetsenegger het volgende:
[..]
Ik zie bij die sourcegardian ook dat er geen serverside sleutel is en er wordt een sleutelbestand bij de sources geplaatst. Volgens mij wordt het dan nog redelijk eenvoudig om de boel te decrypten
[..]
Precies, met source encrypting kan iemand nog de volledig encrypted source ergens anders neergooien. Zit je hooguit nog met templates
[..]
Maar een beetje slimme jongen sloopt die compare-code gewoon uit de source.... weg beveiliging.
En wat lukt je niet?quote:Op woensdag 23 mei 2007 23:07 schreef mstr het volgende:
[..]
Ik heb al téveel geprobeerd, heb er al 1½ uur aan besteed zonder maar enig resultaat
De compare hóeft niet gemaakt te worden als een slimme jongen die code gewoon uit de app sloopt. Dan kun je ook wel voorkomen dat je zo'n melding krijgt.quote:Op woensdag 23 mei 2007 23:11 schreef JortK het volgende:
[..]
Heel simpel, als je de compare niet kunt maken met je applicatie geef je de melding License truncated
Goed, we gaan wegstrepen; wat voor type query is het?quote:
Dit is wat ik ook doe, met als bijkomstige dienst dat ik ook verzegelde servers verhuurdequote:Op woensdag 23 mei 2007 23:49 schreef Tuvai.net het volgende:
Of een applicatie maken die op JOUW server draait waar mensen inloggen. Dat is de strategie van het bedrijf waar ik nu voor werk. Die hebben in feite zelf de servers en de software, altijd binnen handbereik, en alle klanten kunnen er gebruik van maken zonder dat iemand de broncode in z'n handen krijgt.
Daar is weer serverside een compare voor nodig die je er simpelweg uit kan slopen als je een beetje scripting kennis hebt. Ik zat zelf ook die kant op te denken. Vanaf mijn eigen domein elke dag een license file pushen met daarin een hash alogaritme. Je kan dan voor elke installatie een andere hash verzinnen.... Maar wederom het probleem, je moet serverside die hash gaan vergelijken.quote:Op woensdag 23 mei 2007 23:49 schreef Tuvai.net het volgende:
Swets: Elk klant een soort van ID Key / Productcode meegeven en bij installatie door een soot van white list gaan die checkt of het wel een legale versie is die geïnstalleerd word?
Ja elke variant waarbij je controlle over de server hebt is perfect, maar.... not an option. Het is ook meer hypothetisch he. Ik neem ook aan dat ik niet de enige ben met dit 'probleem' en IEMAND zal toch wel eens een werkbare waterdichte oplossing bedacht hebben?quote:Of een applicatie maken die op JOUW server draait waar mensen inloggen. Dat is de strategie van het bedrijf waar ik nu voor werk. Die hebben in feite zelf de servers en de software, altijd binnen handbereik, en alle klanten kunnen er gebruik van maken zonder dat iemand de broncode in z'n handen krijgt.
Ehm, nee. De enige 'veiligheid' die tot nu toe geldt heet 'closed source' en dat noemen ze ook wel 'security through obscurity'quote:Op donderdag 24 mei 2007 08:17 schreef Swetsenegger het volgende:
[..]
Ik neem ook aan dat ik niet de enige ben met dit 'probleem' en IEMAND zal toch wel eens een werkbare waterdichte oplossing bedacht hebben?
Het is goed om even te zien hoe PHP nu eigenlijk werkt. Als je een PHP bestand uitvoert gaat het door de volgende stappen:quote:Op donderdag 24 mei 2007 08:49 schreef WyriHaximus het volgende:
Goed ik hoor de klok en heb geen idee waar de klepel precies is maar is ioncube encoder iets om naar te kijken? http://www.ioncube.com/sa_encoder.php
Mjah, dus veel verder dan ergens ver weg gestopt een hashcode vergelijken, en die file misschien obfuscaten kom ik niet.quote:Op donderdag 24 mei 2007 08:22 schreef JeRa het volgende:
[..]
Ehm, nee. De enige 'veiligheid' die tot nu toe geldt heet 'closed source' en dat noemen ze ook wel 'security through obscurity'dat ze voor spelletjes vage shit hebben bedacht als geforceerde foutjes op de CD of DVD en voor applicaties een licentieactivatie met hardwarekoppeling en 5MB aan omzeilende code wil niet zeggen dat het veilig is, en/of dat je het voor je PHP app kunt gebruiken
Dé veiligste manier is alsnog de hele boel intern draaien. Vrijwel elke manier om het te beveiligen in PHP is net zo veilig als de closed source oplossing, minus dat het open source is.Zolang je alle functionaliteit echter bij jouw kant neerlegt, heb je er ook volledige controle over.
Ik zat nog te denken aan remote activatie waarbij je per klant een ander essentiëel deel van de applicatie laat downloaden (zo essentiëel dat alleen de activatie nog werkt). Piracy zul je niet echt kunnen voorkomen, maar door slim watermarks (whitespace? eventueel in de output) achter te laten kun je er eventueel wel achterkomen wie het is geweest.quote:Op donderdag 24 mei 2007 09:00 schreef Swetsenegger het volgende:
[..]
Mjah, dus veel verder dan ergens ver weg gestopt een hashcode vergelijken, en die file misschien obfuscaten kom ik niet.
Ook nog een ideequote:Op donderdag 24 mei 2007 09:02 schreef JeRa het volgende:
[..]
Ik zat nog te denken aan remote activatie waarbij je per klant een ander essentiëel deel van de applicatie laat downloaden (zo essentiëel dat alleen de activatie nog werkt). Piracy zul je niet echt kunnen voorkomen, maar door slim watermarks (whitespace? eventueel in de output) achter te laten kun je er eventueel wel achterkomen wie het is geweest.
Als dat niet het geval is hoef je je nergens druk om te makenquote:Op donderdag 24 mei 2007 09:04 schreef Swetsenegger het volgende:
[..]
Goed, niet dat ik verwacht dat iemand mijn apps wil jatten
quote:Op donderdag 24 mei 2007 09:00 schreef JeRa het volgende:
[..]
Het is goed om even te zien hoe PHP nu eigenlijk werkt. Als je een PHP bestand uitvoert gaat het door de volgende stappen:
1) De PHP parser leest je script, controleert het op syntaxfouten e.d.
2) De PHP parser zet vervolgens je script om naar PHP opcodes (compileren, dit is net zoiets als een Java .class)
3) Vervolgens voert de PHP "virtual machine" de opcodes uit
Als je je bestanden codeert met zo'n encrypter, dan voert ie vantevoren stap 1 en 2 al uit. Eventueel combineert ie dit met licenties en encryption. In dat geval worden er deze stappen uitgevoerd:
1) De Encrypter leest je bestand in en controleert evt. licenties e.d.
2) De Encrypter decodeert je bestand naar PHP opcodes
3) Vervolgens voert de PHP "virtual machine" de opcodes uit
De oplettenden zullen al hebben gezien dat je in beide gevallen voor stap 3 dezelfde opcodes moet hebben voor hetzelfde scriptnu is het punt dat die opcodes echt niet heel moeilijk zijn, en dat als iemand wil hij je scripts kan decoderen en strippen van de 'veiligheidsfeatures'. En dat is onveilig aan alle (voor zover ik gezien heb) PHP encrypters.
Hoop het wel .. snuffelenquote:Op donderdag 24 mei 2007 09:58 schreef Tuvai.net het volgende:
Toch inderdaad wel jammer dat PHP het beschermen van broncode zo vermoeilijkt. Dat vind ik aan ASP.NET weer hartstikke handig, dat je een .DLL`etje hebt waar alleen je programma verder iets mee kan. Wellicht krijgt PHP ook nog iets dergelijks in de toekomst?
Van: http://www.phphacks.com/content/view/49/33/quote:Op donderdag 24 mei 2007 10:11 schreef WyriHaximus het volgende:
[..]
Hoop het wel .. snuffelen
* WyriHaximus gaat info over PHP6 zoeken
quote:* The register_globals, safe_mode and various quotes options will be removed.
* The ereg extension is removed, while the XMLReader, XMLWriter and Fileinfo extensions are added to the core, and by default are on.
* Another addition I find particularly exciting is that APC (Alternative PHP Cache) will be added to the core, though will be off by default. APC can provide serious performance benefits.
* All E_STRICT messages will be merged into E_ALL, another positive change that will encourage good programming practice.
* ASP style <% tags will no longer be supported.
* Addition of new 64-bit integers. The current integer type remains as is, 32 or 64-bit dependent on the platform.
* Use of foreach with multi-dimensional arrays, for example foreach($array as $k => list($a, $b)).
* A new switch in php.ini will allow you to disable Unicode semantics (by default they will be on).
* There will also be various string improvements related to Unicode.
* The microtime() function will return the full floating point number, rather than microseconds unix_timestamp, as at present, probably making the function more readily useful.
* The {} notation for string indexes will no longer be supported, while the [] version will get added to substr() and array_slice() functionality.
* FastCGI will always be enabled for the CGI SAPI, and will not allow it to be disabled.
* The ancient HTTP_*_VARS globals will no longer be supported.
* var will alias public. var was permitted with PHP4 classes, but in PHP 5 this raised a warning. In PHP 6 var will simply be an alias for public, so no warning is necessary.
* The ze1 compatibility mode, which tried to retain PHP 4 behavior but had some bugs, will be removed.
* Dynamic functions will no longer be permitted, to be called with static syntax.
Nog meer info hier maar niks over OPcode beveiliging: http://www.php.net/~derick/meeting-notes.htmlquote:Op donderdag 24 mei 2007 10:17 schreef WyriHaximus het volgende:
[..]
Van: http://www.phphacks.com/content/view/49/33/
[..]
Wil dat zeggen dat je per sé <?php ?> moet gaan gebruiken in plaats van <? ?>? Da's een niet zo prettige verandering voor mij, ben inmiddels al jaren gewend om <? ?> te gebruiken.quote:* ASP style <% tags will no longer be supported.
Nee je kunt <% en %> niet meer gebruiken ipv <?php en ?> en <? en ?>quote:Op donderdag 24 mei 2007 10:26 schreef Tuvai.net het volgende:
[..]
Wil dat zeggen dat je per sé <?php ?> moet gaan gebruiken in plaats van <? ?>? Da's een niet zo prettige verandering voor mij, ben inmiddels al jaren gewend om <? ?> te gebruiken.
| 1 2 3 4 5 6 7 | foreach ($wii as $waa){ echo $waa['wuu']; } ?> |
CTRL Zquote:Op donderdag 24 mei 2007 10:41 schreef Geqxon het volgende:
Of je vernaggeld heel je code qua variabele namen middels een "Replace all" in je teksteditor.
[ code verwijderd ]
quote:Op donderdag 24 mei 2007 10:41 schreef Geqxon het volgende:
Of je vernaggeld heel je code qua variabele namen middels een "Replace all" in je teksteditor.
[ code verwijderd ]
:Y)
| 1 2 3 4 5 6 7 | foreach ($waa as $waa){ echo "wie".$waa; } ?> |
| Forum Opties | |
|---|---|
| Forumhop: | |
| Hop naar: | |