Skip to content

marrow/web.security

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

59 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

web.security

© 2009-2019 Alice Bevan-McGregor and contributors.

Introduction

This package combines a number of smaller components to provide the parts to build the security model for your own WebCore applications.

Installation

Installing web.security is easy, just execute the following in a terminal:

pip install web.security

Note: We strongly recommend always using a container, virtualization, or sandboxing environment of some kind when developing using Python; installing things system-wide is yucky (for a variety of reasons) nine times out of ten. We prefer light-weight virtualenv, others prefer solutions as robust as Vagrant.

If you add web.security to the install_requires argument of the call to setup() in your application's setup.py file, this suite will be automatically installed and made available when your own application or library is installed. We recommend using "less than" version numbers to ensure there are no unintentional side-effects when updating. Use web.security<2.2 to get all bugfixes for the current release, and web.security<3.0 to get bugfixes and feature updates while ensuring that large breaking changes are not installed.

Development Version

Development build status. Development test coverage. Changes since last release. Github Issues Fork this project on Github.

Development takes place on GitHub in the web.security project. Issue tracking, documentation, and downloads are provided there.

Installing the current development version requires Git, a distributed source code management system. If you have Git you can run the following to download and link the development version into your Python runtime:

git clone https://github.com/marrow/web.security.git
pip install -e web.security

You can then upgrade to the latest version at any time:

cd web.security
git pull
pip install -U -e .

If you would like to make changes and contribute them back to the project, fork the GitHub project, make your changes, and submit a pull request. This process is beyond the scope of this documentation; for more information see GitHub's documentation.

Installation "Use" Flags

Several extras_require dependencies are declared, for bundled installation of tools required for additional features that are not required for basic usage. To utilize these flags, on any reference to the project or on-disk project location when executing pip install, add the flags comma-separated within square brackets after the name or path:

pip install -U -e '.[development,geographic]'

Quoting will be required in most shells, as square brackets would ordinarily be "expanded".

  • development — Install a standard suite of development-time support packages, testing framework, and testing components.
  • ecdsa — Require an efficient ECDSA implementation for use of Elliptic Curve signing operations.
  • geo — This project utilizes IP2Location LITE data available from http://www.ip2location.com to blacklist users by country of origin. Enabling this flag will install the official IP2Location library, however the actual dataset will need to be downloaded separately.

Version History

Version 3.0

  • Updated minimum Python version. Marrow Package now requires Python 3.6 or later.
  • Removed Python 2 support and version specific code. The project has been updated to modern Python packaging standards, including modern namespace use. Modern namespaces are wholly incompatible with the previous namespacing mechanism; this project can not be simultaneously installed with any Marrow project that is Python 2 compatible.
  • Added Web Application Firewall extension. To protect your application against passive scanning attempts, access of tools for a programming language that are absolutely not present (i.e. PHP, ColdFusion, Adobe Flex, …), malicious probes, and even to restrict access by geographic location.

Version 2.0

  • Reintroduction of WebCore 1 basic account authentication interface.
  • Extract of the ACL mechanism from WebCore 2, itself an updated version of the WebCore 1 authorization interface.
  • Introduction of new Permission context addition.
  • Addition of OWASP Encrypted Token pattern-modeled cross-site request forgery (CSRF) protection.

Version 1.x

  • Process fully integrated in the WebCore web framework as a mixture of components.

License

web.security has been released under the MIT Open Source license.

The MIT License

Copyright © 2009-2019 Alice Bevan-McGregor and contributors.

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

About

Access control list (ACL) authorization, authentication, and cross-site request forgery (CSRF) protection for WebCore applications.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •