Nodejs script. Stukje code verbergen?

Argon
Elite Poster
Elite Poster
Berichten: 1085
Lid geworden op: 21 Mei 2007
Bedankt: 36 keer
Recent bedankt: 1 keer
Uitgedeelde bedankjes: 11 keer

Nodejs script. Stukje code verbergen?

Berichtdoor Argon » 05 Jul 2018, 22:06

Hallo,

Ik heb een nodejs script die anderen ook kunnen/mogen gebruiken. Is er echter een manier om 1 stukje code in het script te decrypten (lees: onleesbaar maken op één of andere manier)? Of is wat ik vraag onmogelijk?

Bedankt !

liber!
Premium Member
Premium Member
Berichten: 630
Lid geworden op: 09 Apr 2006
Twitter: nathan_gs
Bedankt: 45 keer
Uitgedeelde bedankjes: 92 keer

Re: Nodejs script. Stukje code verbergen?

Berichtdoor liber! » 05 Jul 2018, 22:11

Je maakt het hoogstens moeilijker, maar niet onmogelijk.

blaatpraat
Elite Poster
Elite Poster
Berichten: 788
Lid geworden op: 10 Jan 2014
Bedankt: 61 keer
Uitgedeelde bedankjes: 27 keer

Re: Nodejs script. Stukje code verbergen?

Berichtdoor blaatpraat » 05 Jul 2018, 22:26

Aangezien anderen het moeten kunnen uitvoeren, en javascript geen compileer-taal is, zal het inderdaad niet zomaar gaan (je kan het men enkel moeilijker maken, maar uiteindelijk lukt het men toch).

Een mogelijke approach is je library aanpassen naar een REST/SOAP API script.
Je host zelf je library, en stelt een kleine variant ter beschikking.
Men moet een API key aanvragen bij jou, en daarna kan die kleine variant het gedeelte code dat je niet wilt laten zien opvragen per API, en jij levert enkel hetgeen af dat moet gebeuren (en niet de volledige code).
Vergelijking: als je library bijvoorbeeld er eentje zou zijn voor een rekenmachine, dan geef je niet de code van de rekenmachine, maar zorg je bijvoorbeeld dat je API op 2 en 3, de integer 5 retourneert (jij weet dan dat het een optelfunctie is, en weet hoe de code intern zit, de code wordt niet vrijgegeven in dat geval).

Men kan dan aan de hand van verschillende inputs je code proberen te reverse engineeren, en dat zal men ook lukken op termijn wellicht, maar op deze manier is men toch een tijdje zoet (in tegenstelling tot pakweg een base64 encryptie te gebruiken, dan duurt het 2 seconden voor je code zien).

efari
Starter Plus
Starter Plus
Berichten: 37
Lid geworden op: 10 Sep 2015
Bedankt: 2 keer
Uitgedeelde bedankjes: 2 keer

Re: Nodejs script. Stukje code verbergen?

Berichtdoor efari » 06 Jul 2018, 00:11

wat bedoel je met:
"script die anderen ook kunnen/mogen gebruiken"?
staat het script bvb op een gedeelde folder en kunnen anderen het ter plekke aanpassen? of mogen ze het kopieren en ook zelf gebruiken?

hoedanook, simpele weg:
steek uw "privé code" in een aparte file, maak er een functie van, en roep die functie aan in het gedeelde script. zorg dat je uw 2de file niet deelt met de anderen.

Code: Selecteer alles

// secret.js
// ========
var secretCode = 2;
module.exports = {
  foo: function () {
    return 'bar';
  },
  bar: function (input) {
     return input*secretCode;
  }
};

var zemba = function () {
}



// app.js
// ======
var secret = require('./secret');
console.log(typeof secret.foo); // => 'function'
console.log(secret.foo()); // => 'bar'
console.log(typeof secret.bar); // => 'function'
console.log(secret.bar(3)); // => 6
console.log(typeof secret.zemba); // => undefined


moeilijke weg, zie blaatpraat
Laatst gewijzigd door efari op 06 Jul 2018, 17:18, 1 keer totaal gewijzigd.

Gebruikersavatar
meon
Administrator
Administrator
Berichten: 15789
Lid geworden op: 18 Feb 2003
Twitter: meon
Locatie: Bree
Bedankt: 545 keer
Recent bedankt: 2 keer
Uitgedeelde bedankjes: 470 keer
Contact:

Re: Nodejs script. Stukje code verbergen?

Berichtdoor meon » 06 Jul 2018, 12:46


efari
Starter Plus
Starter Plus
Berichten: 37
Lid geworden op: 10 Sep 2015
Bedankt: 2 keer
Uitgedeelde bedankjes: 2 keer

Re: Nodejs script. Stukje code verbergen?

Berichtdoor efari » 06 Jul 2018, 17:17

meon schreef:https://obfuscator.io/

daarmee kunnen mensen nog steeds de code gebruiken, en als er plaintext wachtwoorden instaan, ook gewoon lezen...
daarnaast bestaan er gewoon tools die code alsnog kunnen de-obfuscaten

Gebruikersavatar
meon
Administrator
Administrator
Berichten: 15789
Lid geworden op: 18 Feb 2003
Twitter: meon
Locatie: Bree
Bedankt: 545 keer
Recent bedankt: 2 keer
Uitgedeelde bedankjes: 470 keer
Contact:

Re: Nodejs script. Stukje code verbergen?

Berichtdoor meon » 06 Jul 2018, 17:22

Snap ik, maar het is wel een antwoord op wat OP vroeg: onleesbaar maken. :-)
Dat je bijvoorbeeld een wachtwoord of API-key daar enkel visueel verbergt en met de juiste debugging/reverse engineering er terug uit kunt halen is een trade-off die je moet maken.

Argon
Elite Poster
Elite Poster
Berichten: 1085
Lid geworden op: 21 Mei 2007
Bedankt: 36 keer
Recent bedankt: 1 keer
Uitgedeelde bedankjes: 11 keer

Re: Nodejs script. Stukje code verbergen?

Berichtdoor Argon » 09 Jul 2018, 12:56

Waar het hem in principe over gaat is dat ik API keys zou verkrijgen van anderen die ik in mijn script verwerk. Ik snap dus dat bepaalde mensen niet het vertrouwen hebben om HUN API keys te geven aan een onbekende...

Vandaar de vraag of de mensen op één of andere manier hun API keys zouden kunnen encrypten zodat ik deze dan gewoon kan copy/pasten in het nodejs script zonder dat ik de effectieve inhoud van de API keys zie.

Gebruikersavatar
r2504
Deel van't meubilair
Deel van't meubilair
Berichten: 29371
Lid geworden op: 28 Okt 2003
Bedankt: 1939 keer
Recent bedankt: 14 keer
Uitgedeelde bedankjes: 413 keer

Re: Nodejs script. Stukje code verbergen?

Berichtdoor r2504 » 09 Jul 2018, 13:31

Nee... de enige oplossingen zijn;

- jou code verhuizen naar een server welke men kan aanspreken met jou API key (en die dus achterliggend de andere services aanroept)
- of voor al je gebruiker ook specifieke API keys te laten aanmaken bij jou bron (als die dat al wil doen - weet die trouwens dat jij z'n services aan het "resellen" bent ?)

Argon
Elite Poster
Elite Poster
Berichten: 1085
Lid geworden op: 21 Mei 2007
Bedankt: 36 keer
Recent bedankt: 1 keer
Uitgedeelde bedankjes: 11 keer

Re: Nodejs script. Stukje code verbergen?

Berichtdoor Argon » 09 Jul 2018, 13:39

Er is niets illegaal in het spel hier, dus het gaat hem puur over vertrouwen.

Op Binance kan iedereen een API key creëren zodat er met Bots getrade kan worden

Ik heb samen met nog een ander persoon enkel bots geschreven die reeds uitvoerig getest geweest zijn en goed werken. Deze bots zouden we nu "resellen" maar we willen het script natuurlijk niet gewoon aan iedereen geven. Vandaar dat we de API key nodig hebben van de "klanten" om onze bot te laten traden met hun funds. Er zijn voorbeelden genoeg van Discord groepen waar ze het zo al doen. Dus bepaalde mensen (niet allemaal natuurlijk) vertrouwen het wel.

Vandaar dacht ik om de drempel tot het geven van de API keys te verlagen en om te kijken of de "klant" zijn API keys in geëncrypteerd vorm kan aanleveren.

Gebruikersavatar
r2504
Deel van't meubilair
Deel van't meubilair
Berichten: 29371
Lid geworden op: 28 Okt 2003
Bedankt: 1939 keer
Recent bedankt: 14 keer
Uitgedeelde bedankjes: 413 keer

Re: Nodejs script. Stukje code verbergen?

Berichtdoor r2504 » 09 Jul 2018, 13:47

Het lijkt me best dat jij je code verplaatst naar jou server en de "klanten" dit laat aanspreken (in welke taal dan ook). Op die manier kan je je klanten een account (met API key) geven en een configuratie scherm waarin zij hun benodige API keys kunnen ingeven.

Al de rest werkt gewoon niet... zeker al niet met een scripting taal (het enige wat je kan doen is het wat moeilijker maken maar het blijft gepruts).

Tomby
Elite Poster
Elite Poster
Berichten: 3735
Lid geworden op: 01 Feb 2006
Bedankt: 247 keer
Recent bedankt: 4 keer
Uitgedeelde bedankjes: 434 keer

Re: Nodejs script. Stukje code verbergen?

Berichtdoor Tomby » 10 Jul 2018, 10:33

Modbreak:
off topic
r2504 schreef:- jou code verhuizen naar een server welke men kan aanspreken met jou API key (en die dus achterliggend de andere services aanroept)
- of voor al je gebruiker ook specifieke API keys te laten aanmaken bij jou bron (als die dat al wil doen - weet die trouwens dat jij z'n services aan het "resellen" bent ?)


Niet van mijn gewoonte maar 3x in 2 zinnen piekt wel enorm :) : het bezittelijk voornaamwoord is 'jouw', niet 'jou'.
Afbeelding


Terug naar “Web-en applicatie-ontwikkeling”

Wie is er online

Gebruikers op dit forum: Geen geregistreerde gebruikers en 0 gasten