• 0

Protecting/Hiding AngularJS Codes


Question

Hi,

 

Angular JS has been very useful to me lately and it's amazing how quick it makes web development. I am aware that Javascript isn't compiled, thus your Javascript codes or Angular JS codes are accessible to anyone with a web browser.

 

I really like how Angular works and actually love the fact that I can program most of my backend logic within Angular controllers, etc. But how do I protect proprietary codes or algorithm?

 

Currently, I'm making AJAX calls to a C++ binary/exe file to carry out a specific operation. This helps me protect the algorithm but I would love to compile the JS code to binary and no longer depend on C++, etc.

 

Any thoughts or ideas?

Link to comment
https://www.neowin.net/forum/topic/1255912-protectinghiding-angularjs-codes/
Share on other sites

7 answers to this question

Recommended Posts

  • 0

Run your code through a minifier to produce a .min.js file ?

 

Then use that in your production index.html page and you should be fine.

 

Be aware though of minified javascript code with Angular - you must have specified your dependencies properly otherwise things will break.

 

Plenty of info searching around for that though.

 

Also you dont want to be putting logic into Controllers - they are to be kept as lightweight as possible.

Put the logic into Services as they can be tested much more easily and this promotes code reuse over your application if required.

  • 0

Minify and also uglify your javascript. Search on google for techniques of doing both. It will mangle up your production scripts to where they won't be human readable anymore. Note that you're still not 100% secure that way since you still have working scripts exposed to the client and someone (quite smart with the proper tools) can still reverse engineer your codes to certain extent but for the most part you should be OK.

 

That being said, for very sensitive codes and algorithms it is sometimes best to leave them on the server. That's why as nice as JavaScript frameworks like Angular are, there still will always be the need to have a server in the back-end to perform certain sensitive tasks such as security, authentication and hiding protected algorithms...

  • 0
  On 07/05/2015 at 14:58, roosevelt said:

I really like how Angular works and actually love the fact that I can program most of my backend logic within Angular controllers, etc.

 

You mean frontend logic right?

 

  On 07/05/2015 at 14:58, roosevelt said:

Currently, I'm making AJAX calls to a C++ binary/exe file to carry out a specific operation. This helps me protect the algorithm but I would love to compile the JS code to binary and no longer depend on C++, etc.

 

There is not really a whole lot you can do with your JS, but to be honest I don't really see why it would be a problem anyway. I agree with what the others have said, If you have some new super amazing algorithm, chances are you only need to be using it on the backend anyways where this isn't a problem.

 

The only thing you can really do with JS is run it through a minifier which will mash up the formatting and naming of everything. It will look pretty unreadable to most people but that doesn't stop anyone from simply running it through a formatter (there is a pretty print function in Chrome's Developer tools) and things suddenly get a lot more readable. You don't get the variable names which good, but to be honest if someone is willing enough to try and work it out, they probably will.. .eventually.

  • 0

Minifying and uglyfying isn't gonna work, it's just going to rename the variables and function names but the code stays the same for anyone who want's to steal your code.

 

Front end stuff will always be something users can copy from your website, there's no way to protect yourself against that.

 

That's one of the many reasons why adobe flash was so succesful, it was able to include drm however you liked it.

  • 0

Security through obfuscation isn't security. You can't hide JavaScript code because it is compiled client side...

 

Move what you consider the most secret onto a server and call its output via APIs if you want to secure the code. Your client side code should be "dumb" and "thin" when you need to hide the details.

  • 0

Haha, yes you could say front end logic. Coming from cakephp MVC background, most of the things like rendering partials, handling routes, and dealing with arguments, etc are all handled by PHP and processed at the server level. But with angular I don't even need a web server and I could create a fully functional application with dummy/local json files.

  On 07/05/2015 at 15:23, Mulrian said:

You mean frontend logic right?

There is not really a whole lot you can do with your JS, but to be honest I don't really see why it would be a problem anyway. I agree with what the others have said, If you have some new super amazing algorithm, chances are you only need to be using it on the backend anyways where this isn't a problem.

The only thing you can really do with JS is run it through a minifier which will mash up the formatting and naming of everything. It will look pretty unreadable to most people but that doesn't stop anyone from simply running it through a formatter (there is a pretty print function in Chrome's Developer tools) and things suddenly get a lot more readable. You don't get the variable names which good, but to be honest if someone is willing enough to try and work it out, they probably will.. .eventually.

This topic is now closed to further replies.
  • Posts

    • Pete Hegseth would like a word. I doubt that fiasco stops at Signal.
    • Minecraft's big graphics overhaul is now available by Taras Buria It is a big day for Minecraft fans. Mojang has released the long-anticipated graphics overhaul and a new content drop. The Chase the Skies update is now available in Minecraft on all supported platforms, while the Vibrant Visuals overhaul is currently available in Minecraft Bedrock Edition only (it is coming to Java Edition later). Mojang planned a visual update for Minecraft eight years ago, but the Super-Duper Graphics project was cancelled due to performance and other issues. Now, Mojang is ready to try again. This time, however, the update has been successfully delivered to gamers. The reworked graphics in Minecraft include directional lighting, volumetric fog, improved shadows, reflections, godrays, and a lot more. Previously, stuff like this required Minecraft RTX or third-party shaders, but now, the game has improved graphics natively. The update is available across many devices, and you do not need a high-end PC to run it. The upgrade is available on the following systems: Android with Adreno 640, Mali-G68, Mali-G77, Xclipse 530, and higher. iPhones and iPads with the A12 or M1 processor and higher. Any PC with DirectX 12 support. PlayStation 4 and PlayStation 5. Xbox One and Xbox Series X|S. You can enable Vibrant Visuals in display settings. Note that while the upgrade is compatible with many devices, performance still takes a hit. However, you can improve your experience by tweaking different parts of the visual overhaul in graphics settings. Another thing worth noting is that splitscreen multiplayer does not currently support Vibrant Visuals, just like worlds and texture packs. As for the Chase the Skies update, it introduces happy ghasts, new music disks, locator bar for players, environmental fog in the overworld, new background music, and all sorts of small gameplay changes, such as the ability to craft a saddle and a leade, horse taming with carrots, and more. You can read more about the latest Minecraft update in a post on the official website.
    • “We know Biden and Hunter and many in that administration profited tremendously from the support of Ukraine. Nobody talks about that.” Every single right wing talking head has been talking about that and Hunter’s laptop since 2022. Republicans could not even make the case that involved Joe through congressional oversight . ”We do not know what his true motives are other than what we see.” Maybe the way he behaves and talks should show you his true motives (not everything is hidden or a conspiracy). He is a lying bigot who cares about money and power.
    • Libertarian here, I am not following you. What is the difference between the current politics and a bunch of monkeys throwing poop each other?.
  • Recent Achievements

    • Reacting Well
      Cole Multipass earned a badge
      Reacting Well
    • Reacting Well
      JLP earned a badge
      Reacting Well
    • Week One Done
      Rhydderch earned a badge
      Week One Done
    • Experienced
      dismuter went up a rank
      Experienced
    • One Month Later
      mevinyavin earned a badge
      One Month Later
  • Popular Contributors

    1. 1
      +primortal
      693
    2. 2
      ATLien_0
      274
    3. 3
      Michael Scrip
      216
    4. 4
      +FloatingFatMan
      189
    5. 5
      Steven P.
      146
  • Tell a friend

    Love Neowin? Tell a friend!