Git Product home page Git Product logo

globaleaks / globaleaks Goto Github PK

View Code? Open in Web Editor NEW
1.2K 79.0 258.0 414.42 MB

GlobaLeaks is free, open source software enabling anyone to easily set up and maintain a secure whistleblowing platform.

Home Page: https://www.globaleaks.org

License: Other

Shell 0.48% Python 57.48% HTML 21.90% JavaScript 19.15% CSS 0.96% Dockerfile 0.03%
digital-human-rights whistleblowing anonymity security python angularjs twisted sqlalchemy letsencrypt https

globaleaks's Introduction

License Code of Conduct follow on Twitter

GlobaLeaks is free, open source software enabling anyone to easily set up and maintain a secure whistleblowing platform.

Continuous integration and testing

Branch Build Status Test Status Quality Coverage Documentation
main build workflow build workflow Codacy Badge Codacy Badge Build Status
devel build workflow test workflow Codacy Badge Codacy Badge Build Status

Project best practices and scores:

Metric Score
Mozilla HTTP Observatory Status
Security Headers Status
SSLLabs Status
CII Best Practices CII Best Practices

Project statistics on OpenHub: www.openhub.net/p/globaleaks

Infrastructure status: uptime.globaleaks.org

Documentation

GlobaLeaks's documentation is accessible at: docs.globaleaks.org

Community support

If you need technical support, have general questions, or have new ideas for GlobaLeaks, please post your message on the Community Forum.

Join our Community Chat to get in touch with the development team and the GlobaLeaks community:

  • #development to participate in development discussions
  • #community-support for the community support

If you want to contribute to the project please check the Contributors Guidelines.

In case you need to file a security report please check our Security Policy

Brand guidelines and brand assets

Within the GlobaLeaks project we researched a nice and smooth brand style, using accessible colors and trying to communicate our values. If you are planning some press releases, a conference, or promoting GlobaLeaks please keep at reference our official Brand Guidelines and use our Brand Assets.

Donate

To support the GlobaLeaks project you can help us with donations that will goes entirely for the software development.

License

GlobaLeaks is released under the AGPLv3 license.

globaleaks's People

Contributors

alranel avatar comradekingu avatar cyberflaneuse avatar evilaliv3 avatar fpietrosanti avatar gionn avatar hellais avatar ianribas avatar indigane avatar jmcpo15 avatar jweyrich avatar kituser avatar kskarthik avatar lastknight avatar lorenzoprimi avatar mapmeld avatar mfoti avatar misjoinder avatar mmaker avatar msmannan00 avatar ncommander avatar nskelsey avatar nursoda avatar oidatiftla avatar pnellikkaparambil avatar pptr3 avatar rglauco avatar taipo avatar vecna avatar vodkina avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

globaleaks's Issues

Git submodules refer to outdated version of GLBackend & GLClient

I've been trying to make the procedure at https://github.com/globaleaks/GlobaLeaks/blob/master/README.md working with submodules.

So that the only git command to be done to checkout the project will be:
git clone --recurse https://github.com/globaleaks/GlobaLeaks.git

But in that case the Submodules of GLClient and GLBackend that get downloaded are old revisions:
(glenv)root@nite:/tmp/GlobaLeaks# git submodule status
9:34 83aa90d GLBackend (remotes/origin/rest-hooks-27-g83aa90d)
bde4c08 GLClient (bde4c08)

It's possible to make the submodules point to the HEAD version of the GLBackend & GLClient to setup the stuff in one command starting from GlobaLeaks git?

Submission-> All Receivers shown regardless of the context selected

When a whistleblower approach the submission it is presented a list of Receiver that should be "Context dependent" .

However all receivers are always shown, regardless the fact that a receiver is part or not of a context.

Even changing "Context" in the context list on submission page doesn't change the list of receiver.

Even creating a receiver with no context associated, make it appear in the list.

Internationalization & multi language support

Discussing with @vecna we have agreed that there will be two kinds of translations that will happen in GlobaLeaks.

One is related to the content that is configurable by a Node Administrator (Customization)

The other is related to application specific strings that will be translated inside of the client software (Client Translation).

Customization

  • Forms Fields (suggestions, names)
  • Submission wizard (descriptions)
  • Title of the node
  • Description of the node

Client translation

  • Menu items
  • Error messages
  • Domain specific naming (e.x. Receipt, Submission Fields, Uploaded files, etc.)

GlobaLeaks testing client for development

After the recent refactoring the methods used by curtreg to generate the requests for use by emulating a globaleaks client from command line stopped working.

A Globaleaks client making request and automation is required to facilitate testing regardless of the availability of full globaleaks client interfaces and rest implementation.

The goal of the client is to facilitate the development.

Requirements:

  • it must be quick to be used and developed
  • it must be hackish for very quick modification
  • it must be commandline to provide easy scripting (es: first do submission, the add files, then finalize, then come back with receipt to access tip, then a receiver access it, etc)

We do not need this client for:

  • performance testing
  • automated fuzzing

So, we now have 3 options:

  • Python curtreg refactoring
    This probably means changing the logic to hard-code data in the request.
  • Scripting with cmdline tools
    Make scripting with command line tools such as curl or other pythonic cmdnline script like https://github.com/jkbr/httpie#json

Testing RESTful API with httpie
http://blogs.operationaldynamics.com/andrew/software/research/testing-restful-apis-with-httpie

Testing RESTFul API with curl/wget
http://blogs.operationaldynamics.com/andrew/software/research/testing-rest-the-hard-way

  • Javascript client
    Javascript client can be executed from command line with phantomjs.

It can be automated with jasmine (below example of REST testing with jasmine:
http://blog.founddrama.net/2012/09/headless-javascript-testing-with-jasmine-and-phantomjs/
http://stackoverflow.com/questions/11429332/unit-tests-of-node-js-rest-services-with-mocha-or-jasmine
http://brianstoner.com/blog/testing-in-nodejs-with-mocha/

Admin->Advanced Settings-> Edit fields: Certain fields type cannot be configured

When the admin try to configure with "Edit Fields", certain fields type cannot be configured.

That is in particular due to the fields that, while editing, does require to add multiple sub-data when a new "Add options" button appear, but it's not possible from the interface to add "those options" .

The fields that cannot be configured from UI are:

  • Drop Menu (Select)
  • Multi Select
  • CheckBoxes

Password Lockout Security Feature

Password lockout is to protect receivers against password brute forcing, functionally as described in the "GlobaLeaks Application Security Design" document.

This feature is to be implemented by:

  • making the lockout parameters configurable by the admin
  • visualizing remaining attempt on "failed password attempt" (the user must be informed that he has remaining X passwords while typing)
  • introducing the concept of receiver activated/deactivated flag
  • the logging of the security incident (somehow to report the admin some info about what's happened, even as a receiver flag containing some info about the incident)

Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

Admin->Basic Configuration: Receivers are associated only to the first context created ?

There is some concrete bug related to the association between receivers and context.

a) The receivers, even if not added, are show like associated only to the first context in the list
b) Is not possible to add new context to receivers (doesn't even know in the list box)
c) Is not possible to add new receivers to a context (there is the list of receiver in the list box, but after a "save" and a Realod Ctrl+R of the overall page, the receivers are not saved to the context)

There is something broken in the logic/data between receivers/context association

Timedate portability between client, server and localized calendars

We need to figure out what's the best way (simpler, flexible and safe) for share date between client, server and possible third party services integrated with our environment.

The date fields in the client-server communication would describe system-dependent-date, like "when this Tip has been submitted" or "when this context has been created in the node".

The base idea was: using simply 32bit time_t description, (representing the number of seconds after 1970) because is supported in every language a function able to convert this element in an human readable format, and would be stored and compared easily.

In this way, we can decide in different situation if a date need to be rendered with a certain localization method (eg, in the client with japanese lang, without having to parse a western based date string).

other options (need to be evaluated) are:
http://docs.python.org/library/datetime.html?highlight=date%20format
http://en.wikipedia.org/wiki/ISO_8601
http://www.ietf.org/rfc/rfc3339.txt

useful pointer: http://stackoverflow.com/questions/455580/json-datetime-between-python-and-javascript

Tticket expected output is: "the safest and easier way for timedate portability among different programming languages and different calendar localization".

@hellais @evilaliv3 @fpietrosanti

Admin->Advanced Settings-> Notification settings doesn't save / validate data

The admin interface for the notification settings does not save and does not valdate the data provided as input.

After saving, the data are not shown in the web interface (empty fields) even after a reload.

Additionally it does not do client validation on the following fields format:
SMTP server address
SMTP server port
Username
Password
Transport Security

UI Mockups

Are the UI mockups going to be available in the repository so that people can work on implementing them?

Tip-> Receiver List have "Description" field Empty

The Tip (Whistleblower and Receiver) have a column with a table for the receiver showing 3 row:

  • name
  • description
  • access count

The field description is never used and always empty

The fix can be done in two way:

  • to add a description to the reicever (making it configurable via admin as an additional fields)
  • or
  • to remove the description field in the Receiver list of Tip Page

Screen Shot 2013-02-22 at 11 35 36 PM

Admin-> Login -> Basic Configuration: The Basic Config page doesn't load in certain condition

The Basic Config page doesn't load in certain condition

If an unauthenticated admin goes to

http://dev.globaleaks.org:8082/#/admin/basic

then it got redirected automatically to /#/login

and it authenticate with login and password

then it got redirected to the Basic Settings page.

Now the Basic Settings page is empty and the user must hit a reload of the web page Ctrl+R in order to see the fields populated.

Page saw:
Untitled

After Ctrl+R:
Screen Shot 2013-02-22 at 11 41 42 PM

Admin->Basic Configuration: Receiver name can be arbitrarily long

The Receiver name created can be artbitrarly long.

The length should be set to a maximum.

Both the client and the server accept a very long string like:
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Receiver Tip-> Receiver can't download fiels

The Receiver cannot download the fields uploaded by the Whistleblower, (the file names does not provide any hyperlink to download it)

The Receiver must be able to download files form the Tip

Screen Shot 2013-02-22 at 11 50 24 PM

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.