Nodejs script. Stukje code verbergen?

Argon
Elite Poster
Elite Poster
Berichten: 1062
Lid geworden op: 21 Mei 2007
Bedankt: 34 keer
Uitgedeelde bedankjes: 10 keer

Nodejs script. Stukje code verbergen?

Berichtdoor Argon » 2 weken 20 uur 55 minuten geleden (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: 607
Lid geworden op: 09 Apr 2006
Twitter: nathan_gs
Bedankt: 44 keer
Uitgedeelde bedankjes: 87 keer

Re: Nodejs script. Stukje code verbergen?

Berichtdoor liber! » 2 weken 20 uur 49 minuten geleden (05 Jul 2018, 22:11)

Je maakt het hoogstens moeilijker, maar niet onmogelijk.

blaatpraat
Premium Member
Premium Member
Berichten: 667
Lid geworden op: 10 Jan 2014
Bedankt: 55 keer
Recent bedankt: 4 keer
Uitgedeelde bedankjes: 20 keer

Re: Nodejs script. Stukje code verbergen?

Berichtdoor blaatpraat » 2 weken 20 uur 35 minuten geleden (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
Starter
Berichten: 19
Lid geworden op: 10 Sep 2015
Bedankt: 1 keer
Uitgedeelde bedankjes: 2 keer

Re: Nodejs script. Stukje code verbergen?

Berichtdoor efari » 2 weken 18 uur 50 minuten geleden (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: 15678
Lid geworden op: 18 Feb 2003
Twitter: meon
Locatie: Bree
Bedankt: 520 keer
Uitgedeelde bedankjes: 454 keer
Contact:

Re: Nodejs script. Stukje code verbergen?

Berichtdoor meon » 2 weken 6 uur 14 minuten geleden (06 Jul 2018, 12:46)


efari
Starter
Starter
Berichten: 19
Lid geworden op: 10 Sep 2015
Bedankt: 1 keer
Uitgedeelde bedankjes: 2 keer

Re: Nodejs script. Stukje code verbergen?

Berichtdoor efari » 2 weken 1 uur 43 minuten geleden (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: 15678
Lid geworden op: 18 Feb 2003
Twitter: meon
Locatie: Bree
Bedankt: 520 keer
Uitgedeelde bedankjes: 454 keer
Contact:

Re: Nodejs script. Stukje code verbergen?

Berichtdoor meon » 2 weken 1 uur 38 minuten geleden (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: 1062
Lid geworden op: 21 Mei 2007
Bedankt: 34 keer
Uitgedeelde bedankjes: 10 keer

Re: Nodejs script. Stukje code verbergen?

Berichtdoor Argon » 1 week 4 dagen 6 uur geleden (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: 28461
Lid geworden op: 28 Okt 2003
Bedankt: 1866 keer
Recent bedankt: 6 keer
Uitgedeelde bedankjes: 360 keer

Re: Nodejs script. Stukje code verbergen?

Berichtdoor r2504 » 1 week 4 dagen 5 uur geleden (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: 1062
Lid geworden op: 21 Mei 2007
Bedankt: 34 keer
Uitgedeelde bedankjes: 10 keer

Re: Nodejs script. Stukje code verbergen?

Berichtdoor Argon » 1 week 4 dagen 5 uur geleden (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: 28461
Lid geworden op: 28 Okt 2003
Bedankt: 1866 keer
Recent bedankt: 6 keer
Uitgedeelde bedankjes: 360 keer

Re: Nodejs script. Stukje code verbergen?

Berichtdoor r2504 » 1 week 4 dagen 5 uur geleden (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: 3466
Lid geworden op: 01 Feb 2006
Bedankt: 232 keer
Recent bedankt: 2 keer
Uitgedeelde bedankjes: 344 keer

Re: Nodejs script. Stukje code verbergen?

Berichtdoor Tomby » 1 week 3 dagen 8 uur geleden (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 1 gast