Hoe plaatsen jullie developer opties (dus opties die alleen een developer hoort te zien) in een applicatie? Als je ze openbaar gaat maken dan kan iedere user erbij komen, en dat is niet de bedoeling.
Meestal als een onmogelijke easter-egg achtig iets.
Dus met een hele rare toetsen combi die alleen op het about schermpje werk.
Dus met een hele rare toetsen combi die alleen op het about schermpje werk.
Neem je whisky mee, is het te weinig... *zucht*
Aan zoiets had ik ook al zitten denken. En dan gewoon een property aanpassen, zodat je de volgende keer als je iets opbouwt allerlei extra zaken erbij krijgt?
Uh. Je moet dan gewoon de IDE draaiend hebben en nog een apart programmatje die normaal gesproken alleen developers hebben
<oeps, verkeerd gekeken>
[ Voor 108% gewijzigd door Standeman op 30-07-2003 12:38 ]
The ships hung in the sky in much the same way that bricks don’t.
Kan.. je kan die opties ook direct actief maken en het nog een keer extra beveiligen met een wachtwoord ofzo.Alarmnummer schreef op 30 July 2003 @ 12:29:
Aan zoiets had ik ook al zitten denken. En dan gewoon een property aanpassen, zodat je de volgende keer als je iets opbouwt allerlei extra zaken erbij krijgt?
Ik doe het meestal zo dat ik die extra opties gewoon in een los window laat zien nadat ik de toesen combi gedrukt heb.
Een handige is vaak Ctrl+een cijfer combi. Iig iets wat een normale user nooit zou doen op z'n toetsenbord, ook niet perongeluk. Helemaal omdat het dan alleen nog werkt op het about schermpje (waar een user toch nooit kijkt) heb je het volgens mij dan best goed verstopt.
[ Voor 11% gewijzigd door momania op 30-07-2003 12:39 ]
Neem je whisky mee, is het te weinig... *zucht*
Het gaat me niet zozeer om html. Daarin is het niet verstandig om eastereggs in te bouwen. Maar door bytecode (dat ook nog eens ge-obfuscate is) zie ik ze niet zosnel iets pakken.
[edit]
Ik zie dat Standeman zijn post al heeft aangepast
[edit]
Ik zie dat Standeman zijn post al heeft aangepast
[ Voor 16% gewijzigd door Alarmnummer op 30-07-2003 12:40 ]
Een combinatie van een toetsencombinatie met een password is idd niet slecht. Zelfs al drukken ze op die plek per ongeluk die combinatie aan, dan moeten ze ook nog eens het password bedenken.momania schreef op 30 juli 2003 @ 12:38:
[...]
Kan.. je kan die opties ook direct actief maken en het nog een keer extra beveiligen met een wachtwoord ofzo.
Ik doe het meestal zo dat ik die extra opties gewoon in een los window laat zien nadat ik de toesen combi gedrukt heb.
Een handige is vaak Ctrl+een cijfer combi. Iig iets wat een normale user nooit zou doen op z'n toetsenbord, ook niet perongeluk. Helemaal omdat het dan alleen nog werkt op het about schermpje (waar een user toch nooit kijkt) heb je het volgens mij dan best goed verstopt.
Het liefst wil je natuurlijk 2 varianten van je pakket bouwen: 1 zonder developer-achtige functionaliteit (of admin functionaliteit, of debug functionaliteit, of ...) en 1 met alleen de functionaliteit gericht op gebruikers.
Via je build proces kan je je sources zo configureren dat een bepaalde variant wordt gebouwd.
Via je build proces kan je je sources zo configureren dat een bepaalde variant wordt gebouwd.
Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment
Dan krijg je 2 dezelfde pakketenmbravenboer schreef op 30 juli 2003 @ 12:41:
Het liefst wil je natuurlijk 2 varianten van je pakket bouwen: 1 zonder developer-achtige functionaliteit (of admin functionaliteit, of debug functionaliteit, of ...) en 1 met alleen de functionaliteit gericht op gebruikers.
Dat zou kunnen. Maar op dit moment is dat niet de meest handige optie. Ik wil dezelfde componenten gebruiken maar extra functionaliteit toevoegen door conditioneel acties toe te voegen.Via je build proces kan je je sources zo configureren dat een bepaalde variant wordt gebouwd.
Je wil 1 variant van je pakket! Anders moet je 2 versies/branches onderhouden. DAT is pas k*tmbravenboer schreef op 30 July 2003 @ 12:41:
Het liefst wil je natuurlijk 2 varianten van je pakket bouwen: 1 zonder developer-achtige functionaliteit (of admin functionaliteit, of debug functionaliteit, of ...) en 1 met alleen de functionaliteit gericht op gebruikers.
Via je build proces kan je je sources zo configureren dat een bepaalde variant wordt gebouwd.
Wat ik altijd doe is het volgende: Ik maak een toetscombinatie (zeg Ctrl-W) en die geeft dan een schermpje waar 'ie een nummer in geeft, de Challenge. Dit nummer is random en telkens anders. Bij de challenge hoort een Response, dus een bijbehorend nummer. Aan de hand van een berekening controleer je of de Reponse hoort bij de Challenge.
Nu kun je die response proberen te raden, maar ik zorg er altijd voor dat die response minimaal 6 chars lang is (Hex), dus maximaal 0xFFFFFF - 0x100000 = 16.777.215 - 1.048.576 = 15.728.639 mogelijke Responses voor 1 challenge. Omdat het Hex is is het relatief makkelijk in te typen. Type je 'm fout dan krijg je een nieuwe challenge.
Hou kom je nou aan die response? Simpel: De developers hebben een tooltje van een paar KB waar je de challenge invoert. De response wordt dan berekend en getoond zodat je deze weer kunt invoeren/copy&pasten in je app.
Het mooie hieraan is dat je b.v. een gebruiker die je aan de lijn hebt toch toegang kunt geven tot de "extra features" voor 1 keer. De volgende keer zal er weer een nieuwe challenge zijn en kan 'ie er dus weer niet in en mag 'ie mij weer bellen. Zo weet ik dat 'ie ergens zit waar 'ie niet hoort te komen
Klinkt ingewikkelder dan het is. Ik wil wel wat (VB6) voorbeeldcode posten als er intresse is.
Overigens is dit best te kraken of is er best zelf een soort "keygen" te maken, maar de gemiddelde gebruiker komt daar nooit achter en een (goeie) "hacker/cracker/whatever" komt er toch wel in/doorheen als 'ie wil.
[ Voor 10% gewijzigd door RobIII op 30-07-2003 12:51 ]
There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.
Je eigen tweaker.me redirect
Over mij
Ik zou zelf nogal geneigd zijn om op bestaan van een file/registrykey te checken bij startup om advanced features te unlocken. Default install is die file/key natuurlijk nooit aanwezig, en de naam moet de user dan nog steeds naar raden. Makkelijker te bouwen, overzichtelijker en minder geneigd op www.eastereggs.com te landen
Probleem daarmee is dus weer dat als dit éénmaal bekend is iedereen in de "extra features" van je pakket zit en deze optie dus "standaard" aan gooit. Vind ik mijn oplossing IMHO toch mooiercurry684 schreef op 30 July 2003 @ 12:51:
Ik zou zelf nogal geneigd zijn om op bestaan van een file/registrykey te checken bij startup om advanced features te unlocken. Default install is die file/key natuurlijk nooit aanwezig, en de naam moet de user dan nog steeds naar raden. Makkelijker te bouwen, overzichtelijker en minder geneigd op www.eastereggs.com te landen
There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.
Je eigen tweaker.me redirect
Over mij
omdat onze app werd gebouwd door xml hebben we gewoon een 'level-of-access' attribute ingebouwd. Naargelang een user inlogd word de level gelezen en alles > wordt enabled. Dus maar 1 app met wat dingen die niet visible zijn voor end users. Onze app gaat nog verder aangezien ie voor verscheidene personen andere dingen moet tonen- ook dit is allemaal met level-access gedaan. Nog geen probleem tegengekomen...
We hadden nog eerst gedacht om er een xml-rpc servertje in te proppen en zo te debuggen - maar dat vonden we toch wel overkill hoewel het best wel eenvoudig zou zijn...
We hadden nog eerst gedacht om er een xml-rpc servertje in te proppen en zo te debuggen - maar dat vonden we toch wel overkill hoewel het best wel eenvoudig zou zijn...
...en deze oplossing "druist" tegen het Unified Logon requirement principe van MS in...hobbit_be schreef op 30 July 2003 @ 12:54:
omdat onze app werd gebouwd door xml hebben we gewoon een 'level-of-access' attribute ingebouwd. Naargelang een user inlogd word de level gelezen en alles > wordt enabled. Dus maar 1 app met wat dingen die niet visible zijn voor end users. Onze app gaat nog verder aangezien ie voor verscheidene personen andere dingen moet tonen- ook dit is allemaal met level-access gedaan. Nog geen probleem tegengekomen...
We hadden nog eerst gedacht om er een xml-rpc servertje in te proppen en zo te debuggen - maar dat vonden we toch wel overkill hoewel het best wel eenvoudig zou zijn...
BronNOTE: The process of collecting credentials from a user-mode application can be annoying to the user and can provide a possible security hole in a network computing environment. The Unified Logon requirement (which specifies that the user should only have to type his or her credentials once, at the logon screen), was added to the Microsoft BackOffice logo requirements for these reasons. It is important to make sure that you really must gather credentials and that some other method of credential validation is not more appropriate. Consult the security documentation in the Platform SDK for more information on impersonation and programming secured servers
[ Voor 38% gewijzigd door RobIII op 30-07-2003 12:57 ]
There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.
Je eigen tweaker.me redirect
Over mij
Zijn er verder nog standaard designs (design patterns) voor userlevels ed?
*nog steeds gek op design patterns*
*nog steeds gek op design patterns*
Dat je varianten van je pakket aanbiedt wil niet zeggen dat er ook verschillende codebases zijn. Denk bijvoorbeeld eens aan een PHP installatie met of zonder XSLT support, Subversion met of zonder SSL, een lib met of zonder debugging informatie, Mozilla met of zonder Mail client, Apache met de diverse modules enzovoorts.RobIII: Je wil 1 variant van je pakket! Anders moet je 2 versies/branches onderhouden. DAT is pas k*t
De verschillende varianten die je aanbied gebruiken gewoon verschillende subsets of configuraties van de source en via het build proces wordt er bepaald welke variant er gebouwd moet worden.
Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment
Rob III en waarom druist dit daarin tegen??? de credentials (levels) staan op een Database die met SSL wordt aangesproken - of je hebt de user/pass juist of niet. En trouwens het is toich unified 'login'. En why on earth would i care about M$
.
Onze App:
1) Login Screen
2) If Succesful build app with levels for this user...
Onze App:
1) Login Screen
2) If Succesful build app with levels for this user...
...Ok, begrijp ik. Maar dan moet je dus verschillende compiles maken of de klant zelf laten "maken". Dat vind ik IMHO ook niet erg mooi. Heb liever een plankproduct (voor iedereen hetzelfde)mbravenboer schreef op 30 July 2003 @ 13:15:
[...]
Dat je varianten van je pakket aanbiedt wil niet zeggen dat er ook verschillende codebases zijn. Denk bijvoorbeeld eens aan een PHP installatie met of zonder XSLT support, Subversion met of zonder SSL, een lib met of zonder debugging informatie, Mozilla met of zonder Mail client, Apache met de diverse modules enzovoorts.
De verschillende varianten die je aanbied gebruiken gewoon verschillende subsets of configuraties van de source en via het build proces wordt er bepaald welke variant er gebouwd moet worden.
Wel is het zo dat ik vaak optionele "crap" ook "optioneel" laat installeren (zoals helpfiles e.d.). Maar dat is m.i. toch anders
Voorop: Schrijf MS eens effe netjes. Dit wordt hier niet erg op prijs gesteld.hobbit_be schreef op 30 July 2003 @ 13:17:
Rob III en waarom druist dit daarin tegen??? de credentials (levels) staan op een Database die met SSL wordt aangesproken - of je hebt de user/pass juist of niet. En trouwens het is toich unified 'login'. En why on earth would i care about M$.
Onze App:
1) Login Screen
2) If Succesful build app with levels for this user...
Heb je de bron bekeken? Het gaat erom dat MS adviseert om je gebruiker maar 1 keer te laten inloggen, namelijk in windows. Gebruik die username in je eigen app's om er je eigen "security stuff" aan te hangen, maar laat ze niet inloggen in je app. Zoals je dat nu doet moeten ze dus 2 keer inloggen (1 x windows, 1 x je app).
Ik kan er wel effe op ingaan waarom MS dit adviseert, maar alleen op verzoek
[ Voor 34% gewijzigd door RobIII op 30-07-2003 13:20 ]
There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.
Je eigen tweaker.me redirect
Over mij
Ach. Tot heden werkt mijn oplossing perfect, ben nu bezig met een programma die een executable patched en er een nieuwe aparte wachtwoord e.d. inbouwd per keer dat het programma wordt gedownload wachtwoord wordt in een database gezet etc.
I sincerely hope you were joking.RobIII schreef op 30 July 2003 @ 13:17:
Voorop: Schrijf MS eens effe netjes. Dit wordt hier niet erg op prijs gesteld.
Tja wat kan ik daarop zeggen he: we gebruiken JAVA (ie NOT MS) - dus CROSS-PLATFORM. Verder: 1 keer inloggen is a recipe for security disaster. Hoe meer User/Pass hoe beter. Security > Friendly. Storing User info op de host machine is gewoon bar en bar en bar slecht. Of wil je zeggen dat een Windows doos zo save is dat ie niet gehackt kan worden?. Als dit de lijn is die MS trekt verbaasd het me niets dat ze zo'n slechte rep hebben op security info. En nog iets: IK bepaal zelf wel hoe mijn clienteel het liefst wil werken, en niet iets dat me opgedragen aan een bunch van monopolic, centralistic (talented) bastards. Het internet is gebaseerd op NON-centralistic approach omdat dit uit de natuur bleek de beste manier van overleving.Heb je de bron bekeken? Het gaat erom dat MS adviseert om je gebruiker maar 1 keer te laten inloggen, namelijk in windows. Gebruik die username in je eigen app's om er je eigen "security stuff" aan te hangen, maar laat ze niet inloggen in je app. Zoals je dat nu doet moeten ze dus 2 keer inloggen (1 x windows, 1 x je app).
Omdat ze dan meer controle hebben op jouw spul?Ik kan er wel effe op ingaan waarom MS dit adviseert, maar alleen op verzoek
Zoals je kan zien weet ik niet welke toon jouw reply slaagde? Je klonk als een M$ zealot en ik ben geen fan van dat soort dingen (welk type zealot ook). Als het ironish bedoelt was (hoop ik echt) gelieve in het vervolg effe een smilie ergens te proppen
Nope:hobbit_be schreef op 30 July 2003 @ 13:54:
I sincerely hope you were joking.
Het bedrijf waar Steve Ballmer CEO is heet Microsoft en kort je af met MS. Termen als M$ en Mickeysoft zijn enkel kinderachtige verbasteringen en voegen niets toe. Dus ajb niet doen. Ditzelfde geldt ook voor Linsux etc. Een gefundeerde discussie over pro en cons mag natuurlijk, maar dit is enkel flamen.
Bron: Windows Operated Systems - Policy
Neem je whisky mee, is het te weinig... *zucht*
En ter aanvulling op momania is die policy stilzwijgend globaal geworden ondertussen en zal hij voor zover ik weet in de volgende versie van de globale FAQ ook staan.
hobbit_be schreef op 30 July 2003 @ 13:54:
Tja wat kan ik daarop zeggen he: we gebruiken JAVA (ie NOT MS) - dus CROSS-PLATFORM.
<knip>
Zoals je kan zien weet ik niet welke toon jouw reply slaagde? Je klonk als een M$ zealot en ik ben geen fan van dat soort dingen (welk type zealot ook). Als het ironish bedoelt was (hoop ik echt) gelieve in het vervolg effe een smilie ergens te proppenen dan ook direct mijn apo's voor 'agressive' reply
offtopic:
Ik dacht dat de topic starter Alarmnummer was, niet hobbit_be
Deze draad en mijn replies zijn dan ook (hoewel ik andere mensen quote) bedoeld voor Alarmnummer. Quote's zijn om in te haken op andermans ideeën...
En wat is er mis met een "MS aanhanger"? Die zijn er wel meer hoor
Ik dacht dat de topic starter Alarmnummer was, niet hobbit_be
En wat is er mis met een "MS aanhanger"? Die zijn er wel meer hoor
[ Voor 19% gewijzigd door RobIII op 30-07-2003 14:19 ]
There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.
Je eigen tweaker.me redirect
Over mij
Wat moet ik me nu precies bij "developer opties" voorstellen? Als het gewoon geavanceerde features zijn zou ik zeggen, maak er gewoon een configureerbare optie van ("advanced mode"). Als een gebruiker ze dan aan zet en hij snapt er niets meer van, dan is 't z'n eigen schuld en moet 'ie ze maar weer uitzetten. Je mag ze natuurlijk best een beetje verstoppen, maar het nut van een complete obfuscated niet-standaard interface verzinnen staat mij persoonlijk ontzettend tegen. Ik hou niet zo van software met "hidden features".
Als je wil dat het niet aan te zetten is door domme gebruikers, kun je een registry key gebruiken die bij de installatie goed gezet wordt. In een werkomgeving (waar een systeembeheerder software installeert en de domme gebruiker geen wijzigingen in het systeemgedeelte van de registry kan maken) is je software dan veilig.
Als het echter zeer schadelijk en echt verboden is dat een gebruiker van de developer features gebruik maakt, zelfs in een thuiswerksituatie, zou ik gewoon een versie zonder developer features leveren aan gewone gebruikers.
Ik zou in ieder geval een bewuste keuze maken tussen de gebruiker tegen zichzelf beschermen en de beveiliging van je product beschermen. In het eerste geval lijkt een configuratieoptie me geschikt, in het tweede het alleen meeleveren van bruikbare code. Ik kan me eigenlijk geen scenario voorstellen waarin een of andere easter egg of challenge-response algoritme hier iets aan toevoegt.
edit:
Als je wil dat het niet aan te zetten is door domme gebruikers, kun je een registry key gebruiken die bij de installatie goed gezet wordt. In een werkomgeving (waar een systeembeheerder software installeert en de domme gebruiker geen wijzigingen in het systeemgedeelte van de registry kan maken) is je software dan veilig.
Als het echter zeer schadelijk en echt verboden is dat een gebruiker van de developer features gebruik maakt, zelfs in een thuiswerksituatie, zou ik gewoon een versie zonder developer features leveren aan gewone gebruikers.
Ik zou in ieder geval een bewuste keuze maken tussen de gebruiker tegen zichzelf beschermen en de beveiliging van je product beschermen. In het eerste geval lijkt een configuratieoptie me geschikt, in het tweede het alleen meeleveren van bruikbare code. Ik kan me eigenlijk geen scenario voorstellen waarin een of andere easter egg of challenge-response algoritme hier iets aan toevoegt.
offtopic:
Ik gebruik zelf regelmatig Windows en FreeBSD, maar nooit Linux. Ik heb het simpelweg nergens voor nodig. Dat vind ik echter geen reden om er dan maar op denigrerende toon aan te referen. Sowieso betrap ik veel van die 'M$' haters er vaak op zelf de meeste computertijd onder een Microsoft OS te besteden en geen flauw idee te hebben van de configuratie van een Linux distributie. Als je dus per se 'M$' moet typen, kom je op mij vooral dom over.
Ik gebruik zelf regelmatig Windows en FreeBSD, maar nooit Linux. Ik heb het simpelweg nergens voor nodig. Dat vind ik echter geen reden om er dan maar op denigrerende toon aan te referen. Sowieso betrap ik veel van die 'M$' haters er vaak op zelf de meeste computertijd onder een Microsoft OS te besteden en geen flauw idee te hebben van de configuratie van een Linux distributie. Als je dus per se 'M$' moet typen, kom je op mij vooral dom over.
edit:
offtopic:
Oh ja, leuk dat er over Sun begonnen wordt, als zijnde beter dan 'M$'. ik moet zeggen dat ik me in de praktijk veel meer erger aan het licentiebeleid van Sun dan van Microsoft. Vooral hun ondersteuning voor ontwikkelaars is minimaal; je moet eerst je ziel aan Sun verkopen voordat je officiëel toegang hebt tot ook maar de minste API documentatie, schaarse broncode en beperkte binary distributions. Verder is Java inderdaad cross-platform, maar werkt Sun wel alle open source initiatieven tegen door ontzettend moeilijk te doen over source code licenties en structureel te weigeren binary distributions voor gangbare besturingssystemen vrij te geven (of zelfs maar toe te staan dat iemand anders een binary distrubition maakt).
Oh ja, leuk dat er over Sun begonnen wordt, als zijnde beter dan 'M$'. ik moet zeggen dat ik me in de praktijk veel meer erger aan het licentiebeleid van Sun dan van Microsoft. Vooral hun ondersteuning voor ontwikkelaars is minimaal; je moet eerst je ziel aan Sun verkopen voordat je officiëel toegang hebt tot ook maar de minste API documentatie, schaarse broncode en beperkte binary distributions. Verder is Java inderdaad cross-platform, maar werkt Sun wel alle open source initiatieven tegen door ontzettend moeilijk te doen over source code licenties en structureel te weigeren binary distributions voor gangbare besturingssystemen vrij te geven (of zelfs maar toe te staan dat iemand anders een binary distrubition maakt).
[ Voor 22% gewijzigd door Soultaker op 30-07-2003 16:00 ]
offtopic:
lol - nou als ik wist dat het een P&W rule was zou ik het niet hebben getypt hoor
(of als iemand zich eraan zou storen). ik typte gewoon Mdollarsign omdat dit ik nu al zo lang doe. Dit was de eerste keer dat iemand zich eraan ergerde
. Nou goed echt uitmaken doe het niet. Als ik RobIII er blijer mee kan maken: Microsoft 
Voor de rest was de reply toch echt wel on-topic en toch een duidelijke vraag discussie waarom zo'n single logon niet echt bijster veilig is... Regardless of iedereens favourite OS (mijne is W2K pro btw
)
lol - nou als ik wist dat het een P&W rule was zou ik het niet hebben getypt hoor
Voor de rest was de reply toch echt wel on-topic en toch een duidelijke vraag discussie waarom zo'n single logon niet echt bijster veilig is... Regardless of iedereens favourite OS (mijne is W2K pro btw
Pagina: 1