Pagina 1 van 1

Nodejs script. Stukje code verbergen?

Geplaatst: 05 jul 2018, 22:06
door Argon
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 !

Re: Nodejs script. Stukje code verbergen?

Geplaatst: 05 jul 2018, 22:11
door liber!
Je maakt het hoogstens moeilijker, maar niet onmogelijk.

Re: Nodejs script. Stukje code verbergen?

Geplaatst: 05 jul 2018, 22:26
door blaatpraat
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).

Re: Nodejs script. Stukje code verbergen?

Geplaatst: 06 jul 2018, 00:11
door efari
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

Re: Nodejs script. Stukje code verbergen?

Geplaatst: 06 jul 2018, 12:46
door meon

Re: Nodejs script. Stukje code verbergen?

Geplaatst: 06 jul 2018, 17:17
door efari
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

Re: Nodejs script. Stukje code verbergen?

Geplaatst: 06 jul 2018, 17:22
door meon
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.

Re: Nodejs script. Stukje code verbergen?

Geplaatst: 09 jul 2018, 12:56
door Argon
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.

Re: Nodejs script. Stukje code verbergen?

Geplaatst: 09 jul 2018, 13:31
door ubremoved_539
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 ?)

Re: Nodejs script. Stukje code verbergen?

Geplaatst: 09 jul 2018, 13:39
door Argon
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.

Re: Nodejs script. Stukje code verbergen?

Geplaatst: 09 jul 2018, 13:47
door ubremoved_539
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).

Re: Nodejs script. Stukje code verbergen?

Geplaatst: 10 jul 2018, 10:33
door Tomby
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'.