collective.geotransform


Namecollective.geotransform JSON
Version 3.0 PyPI version JSON
download
home_pagehttps://github.com/collective/collective.geotransform
SummaryGracefully email obfuscation for Plone
upload_time2023-02-09 13:51:11
maintainer
docs_urlNone
authorVictor Fernandez de Alba
requires_python
licenseGPL
keywords geo email obfuscation plone zope
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI
coveralls test coverage No coveralls.
            Introduction
============

.. image:: https://travis-ci.org/collective/collective.geotransform.svg?branch=master
    :target: https://travis-ci.org/github/collective/collective.geotransform

GEO stands for "Gracefully E-mail Obfuscation". This package implements the solution exposed in this post of List Apart web site authored by Roel Van Gils:

http://www.alistapart.com/articles/gracefulemailobfuscation/ 

collective.geotransform uses plone.transformchain to transform the response output from Zope before it reaches your browser. It searches for all "mailto:" occurences inside the response and transform them into encoded harmless links.
It also searches for plain email addresses (without links) inside the response and transform them into encrypted spans.
This codification is done via a simple base64 encoding, but enough to fool a spam robot.

This is the form of the encoded mailto link:

    <a rel="nofollow" href="geomailto:dmljdG9yLmZlcm5hbmRlejJAdXBjbmV0LmVz">Link text</a>

While this is the form of the encoded span for plain email address:

    <span class="geomailaddress">dmljdG9yLmZlcm5hbmRlejJAdXBjbmV0LmVz</span>

On the browser side, the encoded links and spans are decoded to their original form by using a Javascript that restores them to normal "mailto:" links and decrypted plain text emails.

Authenticated responses are NOT affected by this transform. Only anonymous responses are modified.

Compatibility
=============

The versions 3.x (build from the master-branch) are compatible with Plone 6 / Python 3 only.

Other branches / versions support old Plone versions :
 - Plone 5: versions 2.x
 - Plone 4: versions 1.x


TODO
====
 
 * Accessibility form and validators

Changelog
=========

3.0 (2023-02-09)
----------------

- Add Plone 6 compatibility, drop Plone 5 support
  [boulch]


2.1 (2023-01-31)
----------------

- Add support for Python 3 and Plone 5.2.
  [pbauer]


2.0 (2020-11-18)
----------------

- Fix obfuscation with mails within texts
  [laulaz]

- Make mail detection in texts (outside textareas) more robust
  [laulaz]

- Improve / add tests
  [laulaz]


2.0a1 (2018-09-24)
------------------

- Plone 5 compatibility
  [tomgross]

- Add browserlayer and uninstall profile (fixes #11)
  [tomgross]


1.0.4 (2020-11-18)
------------------

- Make mail detection in texts (outside textareas) more robust
  [laulaz]

- Improve / add tests
  [laulaz]


1.0.3 (2017-12-06)
------------------

- Do not obfuscate mails inside textarea or value="" attribute (#15)
  [laulaz]


1.0.2 (2016-08-19)
------------------

- Do not obfuscate mails when called from Ajax, because we don't know if they
  will be de-obfuscated and that the goal is to fool non-Javascript robots
  [laulaz]


1.0.1 (2015-02-03)
------------------

- Add metadata.xml into profile.
  [bsuttor]

- Decode utf8 if accent in mail
  [bsuttor]

- Add upgradestep for import new metadata.xml
  [bsuttor]


1.0 (2014-10-22)
----------------

- Obfuscate plain text mails (#8)
  [laulaz]

- Avoid touching mailto tags content (#4)
  [laulaz]

- Avoid trying to transform non-HTML requests
  [laulaz]

- Handle links with subject and / or body (#1)
  [laulaz]

- Fix check for anonymous (#2) and for portal url (#3)
  [laulaz]

- Fix getSite location
  [laulaz]

- Add tests
  [laulaz]

- Add buildout and bootstrap
  [laulaz]


1.0a3 (2012-08-03)
------------------

- Fix check for anonymous
  [pbauer]


1.0a2 (2010-11-24)
-------------------

- Fixed broken uploaded file to pypi


1.0a1 (2010-10-22)
-------------------

- Initial release



            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/collective/collective.geotransform",
    "name": "collective.geotransform",
    "maintainer": "",
    "docs_url": null,
    "requires_python": "",
    "maintainer_email": "",
    "keywords": "geo email obfuscation Plone Zope",
    "author": "Victor Fernandez de Alba",
    "author_email": "sneridagh@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/57/e6/eeb7a65b7ec2fd368c073969dfcb5720c999e7c158e436d51bc92fc0b657/collective.geotransform-3.0.tar.gz",
    "platform": null,
    "description": "Introduction\n============\n\n.. image:: https://travis-ci.org/collective/collective.geotransform.svg?branch=master\n    :target: https://travis-ci.org/github/collective/collective.geotransform\n\nGEO stands for \"Gracefully E-mail Obfuscation\". This package implements the solution exposed in this post of List Apart web site authored by Roel Van Gils:\n\nhttp://www.alistapart.com/articles/gracefulemailobfuscation/ \n\ncollective.geotransform uses plone.transformchain to transform the response output from Zope before it reaches your browser. It searches for all \"mailto:\" occurences inside the response and transform them into encoded harmless links.\nIt also searches for plain email addresses (without links) inside the response and transform them into encrypted spans.\nThis codification is done via a simple base64 encoding, but enough to fool a spam robot.\n\nThis is the form of the encoded mailto link:\n\n    <a rel=\"nofollow\" href=\"geomailto:dmljdG9yLmZlcm5hbmRlejJAdXBjbmV0LmVz\">Link text</a>\n\nWhile this is the form of the encoded span for plain email address:\n\n    <span class=\"geomailaddress\">dmljdG9yLmZlcm5hbmRlejJAdXBjbmV0LmVz</span>\n\nOn the browser side, the encoded links and spans are decoded to their original form by using a Javascript that restores them to normal \"mailto:\" links and decrypted plain text emails.\n\nAuthenticated responses are NOT affected by this transform. Only anonymous responses are modified.\n\nCompatibility\n=============\n\nThe versions 3.x (build from the master-branch) are compatible with Plone 6 / Python 3 only.\n\nOther branches / versions support old Plone versions :\n - Plone 5: versions 2.x\n - Plone 4: versions 1.x\n\n\nTODO\n====\n \n * Accessibility form and validators\n\nChangelog\n=========\n\n3.0 (2023-02-09)\n----------------\n\n- Add Plone 6 compatibility, drop Plone 5 support\n  [boulch]\n\n\n2.1 (2023-01-31)\n----------------\n\n- Add support for Python 3 and Plone 5.2.\n  [pbauer]\n\n\n2.0 (2020-11-18)\n----------------\n\n- Fix obfuscation with mails within texts\n  [laulaz]\n\n- Make mail detection in texts (outside textareas) more robust\n  [laulaz]\n\n- Improve / add tests\n  [laulaz]\n\n\n2.0a1 (2018-09-24)\n------------------\n\n- Plone 5 compatibility\n  [tomgross]\n\n- Add browserlayer and uninstall profile (fixes #11)\n  [tomgross]\n\n\n1.0.4 (2020-11-18)\n------------------\n\n- Make mail detection in texts (outside textareas) more robust\n  [laulaz]\n\n- Improve / add tests\n  [laulaz]\n\n\n1.0.3 (2017-12-06)\n------------------\n\n- Do not obfuscate mails inside textarea or value=\"\" attribute (#15)\n  [laulaz]\n\n\n1.0.2 (2016-08-19)\n------------------\n\n- Do not obfuscate mails when called from Ajax, because we don't know if they\n  will be de-obfuscated and that the goal is to fool non-Javascript robots\n  [laulaz]\n\n\n1.0.1 (2015-02-03)\n------------------\n\n- Add metadata.xml into profile.\n  [bsuttor]\n\n- Decode utf8 if accent in mail\n  [bsuttor]\n\n- Add upgradestep for import new metadata.xml\n  [bsuttor]\n\n\n1.0 (2014-10-22)\n----------------\n\n- Obfuscate plain text mails (#8)\n  [laulaz]\n\n- Avoid touching mailto tags content (#4)\n  [laulaz]\n\n- Avoid trying to transform non-HTML requests\n  [laulaz]\n\n- Handle links with subject and / or body (#1)\n  [laulaz]\n\n- Fix check for anonymous (#2) and for portal url (#3)\n  [laulaz]\n\n- Fix getSite location\n  [laulaz]\n\n- Add tests\n  [laulaz]\n\n- Add buildout and bootstrap\n  [laulaz]\n\n\n1.0a3 (2012-08-03)\n------------------\n\n- Fix check for anonymous\n  [pbauer]\n\n\n1.0a2 (2010-11-24)\n-------------------\n\n- Fixed broken uploaded file to pypi\n\n\n1.0a1 (2010-10-22)\n-------------------\n\n- Initial release\n\n\n",
    "bugtrack_url": null,
    "license": "GPL",
    "summary": "Gracefully email obfuscation for Plone",
    "version": "3.0",
    "split_keywords": [
        "geo",
        "email",
        "obfuscation",
        "plone",
        "zope"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "57e6eeb7a65b7ec2fd368c073969dfcb5720c999e7c158e436d51bc92fc0b657",
                "md5": "2eca176b5bd9c3491695dac63ec45933",
                "sha256": "b89ad46555de95871ae6a968288d3beada726d6892222a8ce066202c405dbb1c"
            },
            "downloads": -1,
            "filename": "collective.geotransform-3.0.tar.gz",
            "has_sig": false,
            "md5_digest": "2eca176b5bd9c3491695dac63ec45933",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 56737,
            "upload_time": "2023-02-09T13:51:11",
            "upload_time_iso_8601": "2023-02-09T13:51:11.905838Z",
            "url": "https://files.pythonhosted.org/packages/57/e6/eeb7a65b7ec2fd368c073969dfcb5720c999e7c158e436d51bc92fc0b657/collective.geotransform-3.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-02-09 13:51:11",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "github_user": "collective",
    "github_project": "collective.geotransform",
    "travis_ci": true,
    "coveralls": false,
    "github_actions": true,
    "requirements": [],
    "lcname": "collective.geotransform"
}
        
Elapsed time: 0.05798s