Giter Site home page Giter Site logo

schorschii / webpw Goto Github PK

View Code? Open in Web Editor NEW
4.0 3.0 1.0 2.75 MB

Web based password safe with multi-language, multi-user and file upload support.

License: GNU General Public License v2.0

PHP 54.15% CSS 9.75% JavaScript 9.90% HTML 0.12% Twig 26.08%
password safe passwordsafe web-frontend webapp

webpw's Introduction

WebPW

Web based password safe with multi-language, multi-user and file upload support. Usernames, passwords and files are stored encrypted in a MySQL/MariaDB database.

About

Description

Store and view your passwords platform-independent with this PHP web application. Passwords are saved AES-encrypted in a MySQL database. You can create multiple vaults with different master passwords, e.g. for different departments in your company. Inside of vaults you can group password entries and search them.

Screenshots

Login page Password entries

Advantages over conventional password safe applications

  • There is no database file which you need to share -for example- with your co-workers - this means that nobody (except the administrator) has access to the encrypted passwords. Attackers can't copy this file and run brute force attacks against it.
  • You can safely store files with WebPW.
  • It is not necessary to install or deploy any client software.
  • You can create multiple vaults for different purposes or persons within one WebPW installation and MySQL database.

Setup

Server

To set up this web app you need a database (MySQL, MariaDB) server and a Linux-based apache webserver running PHP 7.

  1. Set the applications public directory as your webservers root directory (if necessary, create a virtual host for this application on your webserver).
  2. Run composer install inside the application root directory to install the dependencies.
  3. Create an empty database on your MySQL server. Then, edit config/database.php and enter your MySQL connection credentials.
  4. Ensure that AllowOverride All is set for your application directory in your apache configuration.
  5. Open a webbrowser and navigate to your WebPW installation. You will be redirected to /setup. Follow the instructions on the page to create the database structure.
  6. Thats it. You can now log in on the "Manage Vaults" page with the management password you haven chosen in the previous step and create a vault. After that, you can open this newly created vault and store your passwords.
  7. (optional) You can set your preferred language as default language in config/general.php file.

Recommendations for hardening your server

  • It is highly recommended to use HTTPS instead of HTTP (except you are accessing the site only via localhost). Redirect all HTTP requests to HTTPS.
  • Transfer the ownership of the application files to the web server user (www-data) and deny access for all other users.
  • Use strong passwords for the linux root user (other users too) and mysql accounts.
  • Ensure, that the database server only listens for requests from localhost (and not from other computers inside your network).
  • Install fail2ban to limit brute force attacks.
  • Do not install tools like phpmyadmin.
  • Disable or uninstall the SSH server.
  • Keep your server always up to date.
  • Use an additional apache authentication for the application directory. If you use WebPW inside a company you can use apache's ldap authentication.
  • Limit the access to the IP addresses that really need it.

Client

  • Chrome/Chromium, Firefox, Opera (both desktop and mobile)
  • IE/Edge not tested yet
  • works without JavaScript, but then some features are disabled (search)

Update notes for v0.1.1 users

WebPW now also encrypts username, description and file name of a password record. Therefore, v0.1.1 databases are not compatible to v0.2. Please export your passwords, create a new WebPW v0.2 installation and then re-import your passwords.

License

GNU General Public License - see LICENSE.txt

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to: Free Software Foundation, Inc. 59 Temple Place - Suite 330 Boston, MA 02111-1307, USA.

Libraries

This web application uses:

parseCSV library
© 2014 Jim Myhrberg (MIT license)

Slim framework
© 2011-2017 Josh Lockhart (MIT license)

Twig template engine
© 2009-2017 the Twig Team (BSD 3-clause)

illuminate/database toolkit
© Taylor Otwell (MIT license)

Support

Found a bug? Great! Please report it (preferably with a ready-to-use fix for it ;-) ) on GitHub. Questions, ideas and feature requests are also welcome.

ToDo and planned features

Please visit the GitHub page for more information.

webpw's People

Contributors

schorschii avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

dineshkummarc

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.