2012-05-07 17:08:58 +04:00
< !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
< html xmlns = "http://www.w3.org/1999/xhtml" >
< head >
< meta http-equiv = "Content-Type" content = "text/html; charset=utf-8" / >
< title > Introduction — 0bin 0.1 documentation< / title >
2015-05-10 20:53:55 +03:00
< link rel = "stylesheet" href = "../_static/classic.css" type = "text/css" / >
2012-05-07 17:08:58 +04:00
< link rel = "stylesheet" href = "../_static/pygments.css" type = "text/css" / >
< script type = "text/javascript" >
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../',
VERSION: '0.1',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
};
< / script >
< script type = "text/javascript" src = "../_static/jquery.js" > < / script >
< script type = "text/javascript" src = "../_static/underscore.js" > < / script >
< script type = "text/javascript" src = "../_static/doctools.js" > < / script >
< link rel = "top" title = "0bin 0.1 documentation" href = "../index.html" / >
< link rel = "next" title = "Installation la plus simple" href = "easy_install.html" / >
2013-04-23 01:22:33 +04:00
< link rel = "prev" title = "zerobinpaste command-line tool" href = "../en/zerobinpaste_tool.html" / >
2012-05-07 17:08:58 +04:00
< / head >
2015-05-10 20:53:55 +03:00
< body role = "document" >
< div class = "related" role = "navigation" aria-label = "related navigation" >
2012-05-07 17:08:58 +04:00
< h3 > Navigation< / h3 >
< ul >
< li class = "right" style = "margin-right: 10px" >
< a href = "../genindex.html" title = "General Index"
accesskey="I">index< / a > < / li >
< li class = "right" >
< a href = "easy_install.html" title = "Installation la plus simple"
accesskey="N">next< / a > |< / li >
< li class = "right" >
2013-04-23 01:22:33 +04:00
< a href = "../en/zerobinpaste_tool.html" title = "zerobinpaste command-line tool"
2012-05-07 17:08:58 +04:00
accesskey="P">previous< / a > |< / li >
2015-05-10 20:53:55 +03:00
< li class = "nav-item nav-item-0" > < a href = "../index.html" > 0bin 0.1 documentation< / a > » < / li >
2012-05-07 17:08:58 +04:00
< / ul >
< / div >
< div class = "document" >
< div class = "documentwrapper" >
< div class = "bodywrapper" >
2015-05-10 20:53:55 +03:00
< div class = "body" role = "main" >
2012-05-07 17:08:58 +04:00
< div class = "section" id = "introduction" >
< h1 > Introduction< a class = "headerlink" href = "#introduction" title = "Permalink to this headline" > ¶< / a > < / h1 >
< p > 0bin permet à tout à chacun d’ héberge un pastebin tout en acceptant que n’ importe
quel type de contenu y soit posté. L’ idée est qu’ une personne ne peut (probablement...)
pas être tenue de < a class = "reference external" href = "http://linuxfr.org/news/zerobin-un-pastebin-securise" > modérer le contenu du pastebin< / a > si elle n’ a aucun moyen
de le déchiffrer.< / p >
2012-05-18 16:29:52 +04:00
< p > C’ est une implémentation en Python du < a class = "reference external" href = "https://github.com/sebsauvage/ZeroBin/" > projet zerobin< / a > , facile à installer même
2012-05-07 17:08:58 +04:00
si on ne connait pas ce langage.< / p >
< div class = "section" id = "comment-ca-marche" >
< h2 > Comment ça marche< a class = "headerlink" href = "#comment-ca-marche" title = "Permalink to this headline" > ¶< / a > < / h2 >
< p > A la création du paste:< / p >
< ul class = "simple" >
< li > le navigateur génère une clé aléatoire;< / li >
< li > le contenu est chiffré avec une clé en utilisat AES256;< / li >
< li > le contenu chiffré est envoyé au serveur;< / li >
< li > le navigateur reçoit l’ URL du paste et ajoute la clé dans le hash (#) de l’ URL< / li >
< / ul >
< p > A la lecture du paste:< / p >
< ul class = "simple" >
< li > le navigateur fait une requête GET avec l’ URL du paste;< / li >
< li > puisque la clé est das le hash, la clé ne fait pas partie de la requête;< / li >
< li > le navigateur récupère le contenu chiffré et le déchiffre en utilisant la clé;< / li >
< li > le contenu est affiché en clair et le code coloré.< / li >
< / ul >
< p > Points clés:< / p >
< ul class = "simple" >
< li > la clé n’ est jamais envoyé au serveur car elle est stocké dans le hash;< / li >
< li > et donc la clé n’ apparaitra pas dans les logs du serveur;< / li >
< li > toutes les opérations, y compris la coloration syntaxique, se font côté client;< / li >
< li > le serveur n’ est rien d’ autre d’ un conteneur pour les données chiffrée.< / li >
< / ul >
< / div >
< div class = "section" id = "autres-fonctionalites" >
< h2 > Autres fonctionalités< a class = "headerlink" href = "#autres-fonctionalites" title = "Permalink to this headline" > ¶< / a > < / h2 >
< ul class = "simple" >
< li > coloration syntaxique automatique (pas besoin de la spécifier);< / li >
< li > expiration du pastebin: 1 jour, 1 mois, jamais;< / li >
< li > autodesctruction: le paste est détruit à la première lecture;< / li >
< li > clone d’ un paste: pas d’ édition possible, mais on peut dupliquer un paste;< / li >
< li > upload du code: si le fichier est gros, on peut l’ uploader d’ un coup
plutôt qu’ utiliser le copier/coller;< / li >
< li > copier dans le presse papier tout le code en un click;< / li >
< li > raccourcir l’ url du paste en un click;< / li >
< li > historique des ses propres pastes précédents;< / li >
< li > hash visuel du paste pour l’ identifier facilement dans une liste.< / li >
< / ul >
< / div >
< div class = "section" id = "technologies-utilisees" >
< h2 > Technologies utilisées< a class = "headerlink" href = "#technologies-utilisees" title = "Permalink to this headline" > ¶< / a > < / h2 >
< ul class = "simple" >
< li > < a class = "reference external" href = "https://en.wikipedia.org/wiki/Python_(programming_language)" > Python< / a > < / li >
< li > < a class = "reference external" href = "http://bottlepy.org/" > The Bottle Python Web microframework< / a > < / li >
< li > < a class = "reference external" href = "http://crypto.stanford.edu/sjcl/" > SJCL< / a > (js crypto tools)< / li >
< li > < a class = "reference external" href = "http://jquery.com/" > jQuery< / a > < / li >
2012-05-18 16:29:52 +04:00
< li > < a class = "reference external" href = "http://twitter.github.com/bootstrap/" > Bootstrap< / a > , le framework HTML5/CSS3 de Twitter< / li >
< li > < a class = "reference external" href = "https://github.com/sametmax/VizHash.js" > VizHash.js< / a > pour créer les hash visuels des pastes< / li >
< li > < a class = "reference external" href = "http://www.cherrypy.org/(serveronly)" > Cherrypy< / a > (serveur uniquement)< / li >
2012-05-07 17:08:58 +04:00
< / ul >
< / div >
< div class = "section" id = "problemes-connus" >
< h2 > Problèmes connus< a class = "headerlink" href = "#problemes-connus" title = "Permalink to this headline" > ¶< / a > < / h2 >
< ul class = "simple" >
2012-05-18 16:29:52 +04:00
< li > 0bin utilise plusieurs fonctionalités HTML5/CSS3 qui ne sont pas
2012-05-19 00:47:17 +04:00
encore largement supportées. Dans ce cas nous gérons la dégradation le plus
2012-05-18 16:29:52 +04:00
gracieusement possible.< / li >
< li > La fonction “ copier dans le press/papier” est buggée sous Linux. C’ est du
flash donc nous ne le réparerons pas. Il vaut mieux attendre le support
du presse papier via l’ API HTML5.< / li >
< li > La vérification de la limite de ta taille du paste n’ est pas précise. c’ est
juste un filet de sécurité, donc nous pensons que ça suffira.< / li >
< li > Quelques raccourcisseurs d’ URL et d’ autres services cassent la clé de
chiffrement. Nous essayerons de nettoyer autant que possible mais il y
a une limite à ce que nous pouvons faire.< / li >
2012-05-07 17:08:58 +04:00
< / ul >
< / div >
2012-05-18 16:29:52 +04:00
< div class = "section" id = "qu-est-ce-que-0bin-ne-fait-pas" >
< h2 > Qu’ est-ce que 0bin ne fait pas ?< a class = "headerlink" href = "#qu-est-ce-que-0bin-ne-fait-pas" title = "Permalink to this headline" > ¶< / a > < / h2 >
2012-05-07 17:08:58 +04:00
< ul class = "simple" >
2012-05-18 16:29:52 +04:00
< li > Limitation du nombre de requêtes: ce serait peu productif de le faire au
niveau de l’ application alors que les serveurs Web le font tous de manière très
efficace.< / li >
< li > La prévention de collision de hash: le ratio “ occurence/conséquence”
n’ est pas < a class = "reference external" href = "http://stackoverflow.com/questions/201705/how-many-random-elements-before-md5-produces-collisions" > suffisant< / a > .< / li >
< li > Commentaires: c’ était prévu. Mais il y a beaucoup de contraintes associées,
nous avons donc choisi de nous concentrer sur les fonctions avec un meilleur
rapport qualité/prix.< / li >
2012-05-07 17:08:58 +04:00
< / ul >
< / div >
< / div >
< / div >
< / div >
< / div >
2015-05-10 20:53:55 +03:00
< div class = "sphinxsidebar" role = "navigation" aria-label = "main navigation" >
2012-05-07 17:08:58 +04:00
< div class = "sphinxsidebarwrapper" >
< h3 > < a href = "../index.html" > Table Of Contents< / a > < / h3 >
< ul >
< li > < a class = "reference internal" href = "#" > Introduction< / a > < ul >
< li > < a class = "reference internal" href = "#comment-ca-marche" > Comment ça marche< / a > < / li >
< li > < a class = "reference internal" href = "#autres-fonctionalites" > Autres fonctionalités< / a > < / li >
< li > < a class = "reference internal" href = "#technologies-utilisees" > Technologies utilisées< / a > < / li >
< li > < a class = "reference internal" href = "#problemes-connus" > Problèmes connus< / a > < / li >
2012-05-18 16:29:52 +04:00
< li > < a class = "reference internal" href = "#qu-est-ce-que-0bin-ne-fait-pas" > Qu’ est-ce que 0bin ne fait pas ?< / a > < / li >
2012-05-07 17:08:58 +04:00
< / ul >
< / li >
< / ul >
< h4 > Previous topic< / h4 >
2013-04-23 01:22:33 +04:00
< p class = "topless" > < a href = "../en/zerobinpaste_tool.html"
title="previous chapter">zerobinpaste command-line tool< / a > < / p >
2012-05-07 17:08:58 +04:00
< h4 > Next topic< / h4 >
< p class = "topless" > < a href = "easy_install.html"
title="next chapter">Installation la plus simple< / a > < / p >
2015-05-10 20:53:55 +03:00
< div role = "note" aria-label = "source link" >
< h3 > This Page< / h3 >
< ul class = "this-page-menu" >
< li > < a href = "../_sources/fr/intro.txt"
rel="nofollow">Show Source< / a > < / li >
< / ul >
< / div >
< div id = "searchbox" style = "display: none" role = "search" >
2012-05-07 17:08:58 +04:00
< h3 > Quick search< / h3 >
< form class = "search" action = "../search.html" method = "get" >
< input type = "text" name = "q" / >
< input type = "submit" value = "Go" / >
< input type = "hidden" name = "check_keywords" value = "yes" / >
< input type = "hidden" name = "area" value = "default" / >
< / form >
< p class = "searchtip" style = "font-size: 90%" >
Enter search terms or a module, class or function name.
< / p >
< / div >
< script type = "text/javascript" > $ ( '#searchbox' ) . show ( 0 ) ; < / script >
< / div >
< / div >
< div class = "clearer" > < / div >
< / div >
2015-05-10 20:53:55 +03:00
< div class = "related" role = "navigation" aria-label = "related navigation" >
2012-05-07 17:08:58 +04:00
< h3 > Navigation< / h3 >
< ul >
< li class = "right" style = "margin-right: 10px" >
< a href = "../genindex.html" title = "General Index"
>index< / a > < / li >
< li class = "right" >
< a href = "easy_install.html" title = "Installation la plus simple"
>next< / a > |< / li >
< li class = "right" >
2013-04-23 01:22:33 +04:00
< a href = "../en/zerobinpaste_tool.html" title = "zerobinpaste command-line tool"
2012-05-07 17:08:58 +04:00
>previous< / a > |< / li >
2015-05-10 20:53:55 +03:00
< li class = "nav-item nav-item-0" > < a href = "../index.html" > 0bin 0.1 documentation< / a > » < / li >
2012-05-07 17:08:58 +04:00
< / ul >
< / div >
2015-05-10 20:53:55 +03:00
< div class = "footer" role = "contentinfo" >
2012-05-07 17:08:58 +04:00
© Copyright 2012, Sam et Max.
2015-05-10 20:53:55 +03:00
Created using < a href = "http://sphinx-doc.org/" > Sphinx< / a > 1.3.1.
2012-05-07 17:08:58 +04:00
< / div >
< / body >
< / html >