isaacsteadman / passmanjs Goto Github PK
View Code? Open in Web Editor NEWOnline Password Manager
Home Page: https://passman.isaacsteadman.com/?server_ns=simple&server_pass=simple
Online Password Manager
Home Page: https://passman.isaacsteadman.com/?server_ns=simple&server_pass=simple
# How to setup PassManJs 1. clone the project 2. if you want a full production deployment host on a domain, then follow these steps 1. make sure you have the star deployer available (from the ImperialStarDeployer repo) 2. make sure certain system dependencies are installed, these include nginx and systemd, and an ssl certificate (I use certbot to manage that) 3. make sure star deployer is aware of how your nginx is configured (here I assume nginx configuration lives in /etc/nginx) 1. you should have a /etc/nginx/conf.d directory, if you don't then here are the steps to create it 1. `sudo mkdir /etc/nginx/conf.d` 2. then modify the /etc/nginx/nginx.conf and in the "http" section (starting with "http {" and ending with "}") - add a line that says "include /etc/nginx/conf.d/*.conf;" 2. the full path to that conf.d directory should be specified in a project variable for star deployer named "nginx_conf_d_dir". - since this is a system variable, I usually include it in the root /.imperial-star-deployer.json variable file 4. make sure star deployer is aware of how your systemd is configured - usually just set the "systemd_etc_path" variable to the path /etc/systemd if that is where your systemd stores its configuration files - it is assumed that {systemd_etc_path}/system is where service files are located 5. make sure star deployer is aware of how your ssl certificate is configured 1. 2 files are referred to by the PassMan nginx conf file: "nginx_ssl_cert" and "nginx_ssl_cert_key" 2. I usually run certbot and have it automatically add its certificate paths to a dummy nginx conf file and then copy those paths into these 2 variables - on my raspberry pi these paths were the following: - nginx_ssl_cert: /etc/letsencrypt/live/isaacsteadman.com/fullchain.pem - nginx_ssl_cert_key: /etc/letsencrypt/live/isaacsteadman.com/privkey.pem 6. make sure star deployer is aware of the domain you are hosting PassMan on by adding a project local .imperial-star-deployer.json variable file - all you need to include is `{"project_domain": "your domain"}` 7. run `{ImperialStarDeployer directory}/star deploy {PassManJs directory}` 8. and now you should be good to go. 3. if you don't need a full production deployment and want to just run it locally, then follow these steps 1. cd into PassManJs 2. to get dependencies run `yarn install` 3. to build run `yarn run build-client && yarn run build-server` 4. to run the server and make the client available to a browser run `yarn run start-server` # Current Considerations - avoid DoS attack surface - only make changes to the file system after the user is authenticated and request is permitted by server policy - ony read user header before client is authenticated - also avoids unauthenticated metadata leakage - server policy was created primarily to mitigate DoS attack - the server may still get overloaded in terms of CPU and network capacity, but the storage on the host will not if you limit account creation and account size with server policy (see `class LimitedPolicy` in ServerPolicy.ts) - lock the userLock before any filesystem access
In PassGen
when the checkbox for "Must Have Symbol? " is checked
and the user clicks "Generate Password", the symbols used do not appear to come from the user defined charset
Add a built-in password generator with the following features
Create a plugin for this password manager to integrate into Mozilla Firefox web browser.
Change passman to pull from the server and check the last modified date and compare it to the last modified date of the data the current instance pulled from the server and perform a merge if necessary
merge may require user interaction to decide which changes from which password vault to keep
Use navigator.clipboard.readText when possible instead of ranges and copy event
The "Are you sure you want to leave - any unsaved changes will be lost" dialog shows up even if the user has not changed any of their data.
Add a feature to add the new password from PassGen to the password table and column selected by the user
Replace elements with a tabbed panel type of interface that modern mobile apps use
Custom tables are already supported by the code, let the user specify new ones and possible delete others
Passwords contain a newline character at the end.
This is a bug and should not be the behavior
Create a program that will attach credentials to requests.
Things to keep in mind when thinking about security:
I added some passwords to passman via CSV import and some of them have an extra double-quote character in them
We have 2 PassManJs client instances: A, and B
NOTE: step 6 overwrites the changes A saved in step 4
There is a security bug that would allow users to overload the server with too many new accounts which would fill up the file system.
Potential solutions include CAPTCHA and/or email verification.
Currently, icons are tracked with Git
Create a plugin for this password manager to integrate into Google Chrome web browser.
Input elements with “fit-content” in the style attribute don’t appear. These usually appear in password edit field
Create a table in the interface that stores (and allows the user to generate) SSH keys
add a copy button to the password generator
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.