Is it possible to open the file from your own device

I have developed an online system (HTML+Javascript+PHP) that allows users to encrypt and decrypt messages using opengpg.js.

My main concern is the security of storing the private key on the server. Is there any way to store the data locally on the user's machine so that the HTML page can access it and retrieve the key?

There will be approximately 15 users accessing the site, so I am willing to manually configure their clients if necessary.

One approach I have tried, though unsuccessfully, is:

HTML Page (hosted on the Internet):

<script src="file:///Users/kristoffer/Documents/key.js"></script>
<script>yourkey = key;</script>

Local file (key.js)

key = "the-private-key";

Answer №1

It is not safe to use the script tag to link to a local file in a browser as it can pose a security risk.

Instead of that, consider utilizing cookies or local storage to save the keys. However, I personally do not recommend either option. If you are working on a small internal application, using local storage may be acceptable but please be cautious as it is generally not a recommended practice.

Similar questions

If you have not found the answer to your question or you are interested in this topic, then look at other similar questions below or use the search

Activate two divs simultaneously by hovering over one

I have two divs located in the footer of my website and they can be seen here: divs in question Below is the code for these divs: .upNextCard{ /* Rectangle 68 */ position: absolute; width: 214.29px; height: 255.69px; margin-left:300px; margin ...

An error occurred when trying to load JSON data from Jinja2, and it was due to an unexpected number causing

Currently, I am in the process of developing a website using the Google app-engine. My goal is to showcase a table from a Google SQL database on this site. To achieve this, I am passing data from the database (.py) to the HTML file using Jinja2. However, ...

Performing a sequence of actions using Jquery Queue() function and iterating through each

I am facing an interesting challenge with an array called result[i]. My goal is to iterate through each field in the array and add it to a specific element on my webpage. $("tr:first").after(result[i]); However, I would like this process to happen with a ...

The bidirectional bindings within the component are malfunctioning

I just started learning Angular and I'm currently working on a small project. After following tutorials on two-way bindings, I attempted to implement it in my project. However, when I try to set values in the HTML for my component, it doesn't see ...

There seems to be an issue with loading objects using the binary loader in three.js

I have been working on customizing the code of a three.js example to load a .js file that was originally in .obj format. I am using BinaryLoader.js to load the object, however, the object is not appearing in my modified code. Here is what my code looks lik ...

Angular 8 application experienced an error while attempting to load an external JavaScript library with a require() statement

In my Angular 8 application, I am utilizing an external JavaScript library that includes a require statement at the beginning. require('dependency') Even though I have added the dependency and the library to the scripts section in angular.json, ...

What is the best way to extract value from an input text that is being repeated using ng-repeat within a Tr

Having a table with repeated rows in angular, you can also dynamically add new rows by clicking a button. If there are already 3 repeated rows and 2 extra rows are added with data entered, how can we retrieve all the data from the table in the controller ...

The attribute 'tableName' is not found within the 'Model' type

Currently in the process of converting a JavaScript code to TypeScript. Previously, I had a class that was functioning correctly in JS class Model { constructor(input, alias) { this.tableName = input; this.alias = alias; } } Howev ...

What is the best way to manage CSS while working with Node.js?

I am experimenting with pure vanilla Node.js without any additional frameworks for educational purposes. Currently, I have the following setup: var fs = require('fs'), jade = require('jade'); function compile(dirPath, res) { var ...

I am looking to enhance the dimensions of my shapes by utilizing the ExtrudeGeometry feature in Three.js. Can anyone provide guidance on

I am currently utilizing three.js to create a line in my project. However, I am facing an issue where the line appears flat like a paper, instead of a three-dimensional wall. I am struggling to increase the height of the line in my code. Below is the code ...

Tips for inserting a variable into an attribute value when creating it using TypeScript

this.listvalue; list.forEach((v: any) => { v.data.forEach((v2: any) => { this.searchlist.push({ header: v.header, value: v2.value_0 }); }); }); Is there a way to replace v2.value_0 with v2.this.listvalue? I've tried ...

jquery implementation of an interactive form with dynamic event triggers

I am completely new to jQuery and I know this might be a basic question, but I'm struggling to find a solution. Here's what I want to achieve: I need to create a form where if a user selects 'yes' from a dropdown menu, more fields will ...

Toggle the visibility of a checkbox based on the JSON data

I have 4 check boxes that need to be dynamically displayed based on the value retrieved from my JSON. The JSON will only contain one checkbox name, and that specific checkbox should be shown to the user as checked. How can I achieve this functionality? Bel ...

Having trouble uploading Node.js and Mongoose to Heroku due to error codes H12 and H15? Need help troubleshooting and resolving this issue?

Attempting to deploy my Node, mongoose, express app on Heroku for the first time has been a challenge. The application is a simple blog with a login system. Despite extensive research and effort, I am struggling to successfully host it. Below is the error ...

I've been attempting to adjust the currentTime of an HTML5 video element within a React JS environment, but for some reason it keeps reverting

Need help updating the currentTime of an HTML5 video element with a slider in React JS. My issue is that whenever I adjust the slider, the value resets to 0. The problem seems to be related to the handleChange function which updates the videoRef.current.cu ...

Modify the article category within the Ajax operation

My personal blog on GitHub Pages and Jekyll has a unique CSS styling for articles that changes randomly. Here's the code snippet: <section class="tiles"> {% for post in site.posts %} <article class="XXX" id="styleChanger"> & ...

Guide on how to load just the content section upon clicking the submit button

Here is an example of my code: <html> <head> <title>Test Loading</title> </head> <body> <div id="header"> This is header </div> <div id="navigation" ...

Tips for saving a webcam captured image location into a MySQL database

I've been experiencing issues with the code I used to capture an image. While the image is successfully stored in the specified folder, I'm unable to store the image path in the database. The code stops executing after displaying the "Uploading.. ...

What is the best way to extract plain text with JQuery?

I found this Html code snippet: <div class="form-group row"> <label id="lb_size" class="col-lg-3 col-form-label"> <span class="must-have">****</span> Size </label> </div> My goal is to ext ...

Adding a div element with a background behind a text element using Jquery

Is there a way to position an absolute div behind text or images while staying in front of background images? I have content with background images behind the text, so setting the z-index of the absolute div to -1 won't work. Any suggestions on how to ...