2016-08-21 01:34:45 -04:00
|
|
|
# <img alt="PrivateBin" src="https://cdn.rawgit.com/PrivateBin/assets/master/images/minified/logo.svg" width="500" />
|
2016-07-09 08:43:50 -04:00
|
|
|
[![Build Status](https://travis-ci.org/PrivateBin/PrivateBin.svg?branch=master)](https://travis-ci.org/PrivateBin/PrivateBin) [![Build Status](https://scrutinizer-ci.com/g/PrivateBin/PrivateBin/badges/build.png?b=master)](https://scrutinizer-ci.com/g/PrivateBin/PrivateBin/build-status/master)
|
2016-07-09 05:58:21 -04:00
|
|
|
[![Codacy Badge](https://api.codacy.com/project/badge/Grade/094500f62abf4c9aa0c8a8a4520e4789)](https://www.codacy.com/app/PrivateBin/PrivateBin)
|
2016-07-09 07:59:50 -04:00
|
|
|
[![Code Climate](https://codeclimate.com/github/PrivateBin/PrivateBin/badges/gpa.svg)](https://codeclimate.com/github/PrivateBin/PrivateBin)
|
2016-07-09 15:11:39 -04:00
|
|
|
[![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/PrivateBin/PrivateBin/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/PrivateBin/PrivateBin/?branch=master)
|
|
|
|
[![SensioLabsInsight](https://insight.sensiolabs.com/projects/57c9e74e-c6f9-4de6-a876-df66ec2ea1ff/mini.png)](https://insight.sensiolabs.com/projects/57c9e74e-c6f9-4de6-a876-df66ec2ea1ff)
|
2016-07-09 05:58:21 -04:00
|
|
|
[![Codacy Badge](https://api.codacy.com/project/badge/Coverage/094500f62abf4c9aa0c8a8a4520e4789)](https://www.codacy.com/app/PrivateBin/PrivateBin)
|
2016-07-09 07:59:50 -04:00
|
|
|
[![Test Coverage](https://codeclimate.com/github/PrivateBin/PrivateBin/badges/coverage.svg)](https://codeclimate.com/github/PrivateBin/PrivateBin/coverage) [![Code Coverage](https://scrutinizer-ci.com/g/PrivateBin/PrivateBin/badges/coverage.png?b=master)](https://scrutinizer-ci.com/g/PrivateBin/PrivateBin/?branch=master)
|
2013-02-22 18:44:06 -05:00
|
|
|
|
2016-08-20 11:57:02 -04:00
|
|
|
*Current version: 0.22*
|
|
|
|
|
2016-07-18 05:23:47 -04:00
|
|
|
**PrivateBin** is a minimalist, open source online pastebin where the server has
|
2016-07-09 08:35:50 -04:00
|
|
|
zero knowledge of pasted data.
|
2012-04-22 05:48:39 -04:00
|
|
|
|
2016-07-18 05:23:47 -04:00
|
|
|
Data is encrypted/decrypted in the browser using 256bit AES in [Galois Counter mode](https://en.wikipedia.org/wiki/Galois/Counter_Mode).
|
2012-04-22 05:48:39 -04:00
|
|
|
|
2016-07-03 13:17:16 -04:00
|
|
|
This is a fork of ZeroBin, originally developed by
|
|
|
|
[Sébastien Sauvage](https://github.com/sebsauvage/ZeroBin). It was refactored
|
2016-07-04 06:55:49 -04:00
|
|
|
to allow easier and cleaner extensions and has now much more features than the
|
2016-07-09 08:35:50 -04:00
|
|
|
original. It is however still fully compatible to the original ZeroBin 0.19
|
|
|
|
data storage scheme. Therefore such installations can be upgraded to this fork
|
2015-08-23 12:09:34 -04:00
|
|
|
without loosing any data.
|
|
|
|
|
2016-07-09 06:23:53 -04:00
|
|
|
## What PrivateBin provides
|
2015-08-23 12:09:34 -04:00
|
|
|
|
2015-09-19 11:23:10 -04:00
|
|
|
+ As a server administrator you don't have to worry if your users post content
|
2015-08-23 12:09:34 -04:00
|
|
|
that is considered illegal in your country. You have no knowledge of any
|
2015-09-19 11:23:10 -04:00
|
|
|
of the pastes content. If requested or enforced, you can delete any paste from
|
|
|
|
your system.
|
2015-08-23 12:09:34 -04:00
|
|
|
|
2015-09-19 11:23:10 -04:00
|
|
|
+ Pastebin-like system to store text documents, code samples, etc.
|
2015-08-23 12:09:34 -04:00
|
|
|
|
2016-07-03 13:17:16 -04:00
|
|
|
+ Encryption of data sent to server.
|
2015-08-23 12:09:34 -04:00
|
|
|
|
2016-07-09 08:35:50 -04:00
|
|
|
+ Possibility to set a password which is required to read the paste. It further
|
2015-09-03 16:22:59 -04:00
|
|
|
protects a paste and prevents people stumbling upon your paste's link
|
|
|
|
from being able to read it without the password.
|
2015-09-02 08:07:31 -04:00
|
|
|
|
2015-08-23 12:09:34 -04:00
|
|
|
## What it doesn't provide
|
|
|
|
|
2016-07-09 08:35:50 -04:00
|
|
|
- As a user you have to trust the server administrator, your internet provider
|
2015-09-03 16:22:59 -04:00
|
|
|
and any country the traffic passes not to inject any malicious javascript code.
|
2016-07-09 08:35:50 -04:00
|
|
|
Ideally, the PrivateBin installation used should provide HTTPS, secured by
|
2015-11-09 14:43:24 -05:00
|
|
|
[HSTS](https://en.wikipedia.org/wiki/HTTP_Strict_Transport_Security) and
|
2016-07-09 08:35:50 -04:00
|
|
|
[HPKP](https://en.wikipedia.org/wiki/HTTP_Public_Key_Pinning) using a
|
|
|
|
certificate either validated by a trusted third party (check the certificate
|
|
|
|
when first using a new PrivateBin instance) or self-signed by the server
|
|
|
|
operator, validated using a
|
|
|
|
[DNSSEC](https://en.wikipedia.org/wiki/Domain_Name_System_Security_Extensions)
|
|
|
|
protected
|
2015-11-09 14:43:24 -05:00
|
|
|
[DANE](https://en.wikipedia.org/wiki/DNS-based_Authentication_of_Named_Entities)
|
|
|
|
record.
|
2015-08-23 12:09:34 -04:00
|
|
|
|
2015-09-02 08:07:31 -04:00
|
|
|
- The "key" used to encrypt the paste is part of the URL. If you publicly post
|
2015-09-03 16:22:59 -04:00
|
|
|
the URL of a paste that is not password-protected, everybody can read it.
|
2016-07-03 13:17:16 -04:00
|
|
|
Use a password if you want your paste to be private. In this case make sure to
|
2016-07-09 05:52:26 -04:00
|
|
|
use a strong password and do only share it privately and end-to-end-encrypted.
|
2015-08-23 12:09:34 -04:00
|
|
|
|
|
|
|
- A server admin might be forced to hand over access logs to the authorities.
|
2016-07-09 08:35:50 -04:00
|
|
|
PrivateBin encrypts your text and the discussion contents, but who accessed it
|
2015-08-23 12:09:34 -04:00
|
|
|
first might still be disclosed via such access logs.
|
|
|
|
|
2016-07-09 08:35:50 -04:00
|
|
|
- In case of a server breach your data is secure as it is only stored encrypted
|
|
|
|
on the server. However the server could be misused or the server admin could
|
|
|
|
be legally forced into sending malicious JavaScript to all web users, which
|
|
|
|
grabs the decryption key and send it to the server when a user accesses a
|
2016-07-09 08:43:50 -04:00
|
|
|
PrivateBin.
|
|
|
|
Therefore do not access any PrivateBin instance if you think it has been
|
|
|
|
compromised. As long as no user accesses this instance with a previously
|
|
|
|
generated URL, the content can''t be decrypted.
|
2016-07-03 13:17:16 -04:00
|
|
|
|
2015-08-23 12:09:34 -04:00
|
|
|
## Options
|
|
|
|
|
|
|
|
Some features are optional and can be enabled or disabled in the [configuration
|
2016-07-09 06:25:15 -04:00
|
|
|
file](https://github.com/PrivateBin/PrivateBin/wiki/Configuration):
|
2015-08-23 12:09:34 -04:00
|
|
|
|
2015-09-19 11:23:10 -04:00
|
|
|
* Password protection
|
2015-09-03 16:22:59 -04:00
|
|
|
|
2015-09-19 11:23:10 -04:00
|
|
|
* Discussions
|
2015-08-23 12:09:34 -04:00
|
|
|
|
2015-09-19 11:23:10 -04:00
|
|
|
* Expiration times, including a "forever" and "burn after reading" option
|
2015-08-23 12:09:34 -04:00
|
|
|
|
2015-09-19 11:23:10 -04:00
|
|
|
* Markdown format support for HTML formatted pastes
|
2015-08-23 12:09:34 -04:00
|
|
|
|
2016-07-09 08:35:50 -04:00
|
|
|
* Syntax highlighting for source code using prettify.js, including 4 prettify
|
|
|
|
themes
|
2015-08-23 12:09:34 -04:00
|
|
|
|
2016-07-09 08:35:50 -04:00
|
|
|
* File upload support, images get displayed (disabled by default, possibility
|
|
|
|
to adjust size limit)
|
2015-08-23 12:09:34 -04:00
|
|
|
|
2015-09-19 11:23:10 -04:00
|
|
|
* Templates: By default there is a bootstrap CSS and a "classic ZeroBin" theme
|
|
|
|
and it is easy to adapt these to your own websites layout or create your own.
|
2015-08-23 12:09:34 -04:00
|
|
|
|
2016-07-09 08:35:50 -04:00
|
|
|
* Translation system and automatic browser language detection (if enabled in
|
|
|
|
browser)
|
2015-08-23 12:09:34 -04:00
|
|
|
|
2015-09-19 11:23:10 -04:00
|
|
|
* Language selection (disabled by default, as it uses a session cookie)
|
2015-08-23 12:09:34 -04:00
|
|
|
|
2015-09-19 11:23:10 -04:00
|
|
|
## Further resources
|
2012-04-22 05:48:39 -04:00
|
|
|
|
2016-07-09 06:25:15 -04:00
|
|
|
* [Installation guide](https://github.com/PrivateBin/PrivateBin/wiki/Installation)
|
2012-04-22 05:48:39 -04:00
|
|
|
|
2016-07-09 08:35:50 -04:00
|
|
|
* [Upgrading from ZeroBin 0.19 Alpha](https://github.com/PrivateBin/PrivateBin/wiki/Upgrading-from-ZeroBin-0.19-Alpha)
|
2012-04-22 05:48:39 -04:00
|
|
|
|
2016-07-09 06:25:15 -04:00
|
|
|
* [Configuration guide](https://github.com/PrivateBin/PrivateBin/wiki/Configuration)
|
2012-04-22 05:48:39 -04:00
|
|
|
|
2016-07-09 06:25:15 -04:00
|
|
|
* [Templates](https://github.com/PrivateBin/PrivateBin/wiki/Templates)
|
2012-04-22 05:48:39 -04:00
|
|
|
|
2016-07-09 06:25:15 -04:00
|
|
|
* [Translation guide](https://github.com/PrivateBin/PrivateBin/wiki/Translation)
|
2012-04-22 05:48:39 -04:00
|
|
|
|
2016-07-09 06:25:15 -04:00
|
|
|
* [Developer guide](https://github.com/PrivateBin/PrivateBin/wiki/Development)
|
2012-04-22 05:48:39 -04:00
|
|
|
|
2016-07-19 08:30:44 -04:00
|
|
|
Run into any issues? Have ideas for further developments? Please
|
2016-07-09 06:25:15 -04:00
|
|
|
[report](https://github.com/PrivateBin/PrivateBin/issues) them!
|