php:zerobin_discussion
ZeroBin discussion
Your remarks, suggestion, critics, ideas, bug reports are welcome. Feel free to use English or French.
php/zerobin_discussion.txt · Dernière modification : 2014/07/12 11:26 de 127.0.0.1
Your remarks, suggestion, critics, ideas, bug reports are welcome. Feel free to use English or French.
Discussion
Sous linux, gnome, avec un thème foncé (source possible du problème), le texte que l'on tape est blanc, et donc quasi illisible.
Ah je vois pourquoi, c'est les CSS. Je corrige. Si tu vois d'autres incohérences avec un thème sombre, merci de me faire signe.
Génial. Vivement les sources
A propos de la complexité des adresses (zerobin.org/ladressedutexte#lacledecryptage): N'est-il pas possible de coupler ça avec un raccourciceur d'adresse pour retomber sur une syntaxe du type zerobin.org/adresse ? Ou ca fout a l'eau tout le principe que le serveur ne voit jamais la clef cryptographique ?
URL raccourcie = stockée sur le serveur = clé sur le serveur, ce qui met effectivement à l'eau le principe.
On pourrait imaginer des clés plus courte (128 bits ? 64 bits ?), mais ça réduit d'autant la sécurité. Là on tape carrément dans le 256 bits, ce qui permet de ne pas se poser de question.
ok c'est bien ce que je me disais, ca sentait la fausse bonne idée.
Mais par contre après avoir créé une adresse complète avec la clé, on peut réduire cette adresse avec un autre serveur (bit.ly ou n'importe quoi d'autre) et a ce moment le serveur zerobin ne stock pas la clef
Effectivement, on peut faire ça.
Petite remarque :quand on passe la souris sur le logo en haut a gauche de la page, le pointeur prend la forme d'une zone de texte, alors que ça a plutôt l'air de renvoyer vers un nouveau “paste”. C'est pas le gros bug qui tue mais je fais remonter… Bravo pour le projet
Le problème sous IE ne serait-il pas lié au mot return qu'il considère comme un mot réservé en javascript ?
Oui c'était ça. C'est corrigé. ça devrait maintenant marcher dans toutes les versions d'IE. (Pressez MAJ+F5 pour forcer le rechargement des js/css)
Idées :
- une case à cocher à côté des durée de conservation “à partir de la dernière consultation” ;) et valable pour toute durée sauf NEVER :p
- après l'envoi via SEND, affichage du paste juste en dessous de l'URL et affichage de l'URL avec bouton “COPIER DANS LE PRESSE PAPIER” à côté, et ce à chaque affichage du paste via URL (heu c'est clair ? :p)
- modification du paste existant via un textarea qui crée un nouveau paste ensuite, comme pastebin il me semble (sous pastebin, on pouvait modifier le paste)
1) Ah oui, je vois. Je ne sais pas si je le ferai, mais c'est une idée à garder.
2) Affichage immédiat après création: Fait.
Le bouton “copier dans le presse-papier” est tout simplement infaisable en html/js seul (pour des raisons de sécurité, Javascript n'est pas autorisé à accéder au presse-papier). On peut mettre une applet flash pour faire ça, mais je suis moyennement chaud. Je verrai.
3) Fait (bouton “Clone this paste”).
Pour le 2, je confirme l'applet flash, c'est pourri et ça ne fonctionne qu'une fois sur deux. Par contre ce qui peut être fait, c'est sélectionner l'url qui s'affiche pour qu'elle puisse être copiée rapidement (avec un Ctrl + C ou Cmd + C).
Tout à fait d'accord avec jerrywham, sélectionner l'url est très bien si on ne veut pas passer par le racourcisseur. De plus dans la version actuelle si 'burn after reading' est sélectionné, il est facile de cliquer par erreur sur le lien ce qui détruit le paste. Donc il faudrait rendre le lien non cliquable.
C'est tout à fait faisable en html5/js :
http://www.steamdev.com/zclip/
Même jQuery a un plugin pour ça.
“This plugin uses an invisible Adobe Flash” Ce n'est donc pas simplement du html5/js…….
Contrairement au plugin jQuery oui : http://archive.plugins.jquery.com/project/copy
Télécharges les sources et tu verras qu'il y a un “jquery.clipboard.swf”
Arf, Jquery, à éviter absolument. Les wrappers, c'est la fausse bonne idée en JS, obligé de tout redéfinir.
Et utiliser une lib juste pour ça, quelle bêtise ! Et apprendre le JS ne serait-il pas plus simple et plus intelligent ?
Très bonne idée, cependant je viens de voir que tu as mis en place un raccourcisseur d'URL. Comment fonctionne-t-il pour le pas avoir la clé de décryptage sur le serveur ?
En cliquant sur le bouton, le navigateur envoie l'URL à raccourcir sur snipurl.com, sans passer par le serveur.
Il manque la coloration syntaxique, dommage.
ça viendra. J'ai encore quelques bricoles à ajouter avant de diffuser le source.
Excellent projet, je te soutient a 100 % Une idee possible de feature : Une duree de conservation base sur le nombre d'acces, par exemple je veux envoyer un mot de passe a un ami je choisit un seul acces et une fois que mon ami y a acceder c'est effacer du serveur.
P.S: desole pour les accents (qwerty + UNIX(no alt codes) obligent)
Pas mauvais, comme idée.
Bon il va falloir que je prévoie plusieurs types d'expiration:
EDIT: J'y réfléchis, mais puisqu'il est très facile de cloner un document, le coup d'une seule lecture est-il vraiment pertinent ?
Petite remarque concernant le wiki : pour afficher la page de discussion de shaarli il faut mettre shaarli:discussion tandis qu'avec zerobin il faut mettre zerobi_discussion. Ça serait mieux d'unifier la syntaxe des deux (pour s'y retrouver plus facilement) non ?
ah oui c'est pas vraiment logique…
Je ne pense pas que ce soit dû à mon browser, mais sûrement au javascript, mais quand j'édite l'url, et qu'ensuite je fais entrer, la page ne change pas (même si je change la clé en gros), je dois rafraîchir la page manuellement. Est ce un problème résolvable?
C'est dû au navigateur.
Quant on change juste l'ancre, on est censé être dans la même page, et le navigateur ne recharge donc pas la page: il essaie de trouver l'ancre dans le document et de scroller jusqu'à elle.
Il faut effectivement recharger la page (F5) pour que le changement de clé soit pris en compte.
En soit, ce n'est pas un problème: On est pas censé bidouiller la clé à la main dans l'URL. Je ne pense pas essayer de “corriger” ça.
D'accord, merci.
Salut, juste en passant, il faudrait modifier le nom du logiciel dans “Licence”… pour mettre ZeroBin à la place de Shaarli héhé ;)
C'est fait ! Merci.
Worked perfectly. Also it expired correctly.
Nice work!
You could bump this up to beta level after this round from hackernews I'm sure.
cheers from canada
Thanks ! My little project is getting a bit more attention than I expected.
ghacks en parle : http://www.ghacks.net/2012/04/13/zerobin-open-source-pastebin-alternative-with-client-side-encryption/.
Sinon, petite typo dans la page du projet (dans le chapitre Sources) : Please note this is ALPHA software. It means “unfinised”, …. → unfinished
1) wohoo…
2) merci ! C'est corrigé. (vive les wikis)
Une petit question. Dans l'adresse d'un texte est la clé de décryptage (zerobin.org/ladressedutexte#lacledecryptage). Est-ce, comme ça, le serveur va connaître la clé de décryptage du texte ? Il va suffire d'atteindre au première consultation, non ? On pourrait, peut-être, faire un système plus sécurisé si on sépare l'adresse et la clé ? C'est vrai aussi que ça ferait, en fait, un système moins pratique car on devrait passer toujours l'adresse et la clé.
Corrige moi si je me suis trompé avec mon interprétation
et excusez-moi pour mon français
Et congratulations pour le projet !
Non, l'ancre (la partie après le #…) n'est jamais envoyée au serveur, et n'apparaîtra donc jamais dans les logs du serveur, ni à la création, ni à la consultation. Aucun navigateur que je connaisse n'envoie l'ancre au serveur.
And you can speak english if it's easier for you
Merci de votre correction ! Rapide et efficace.
Bien qu'il ne soit pas directement envoye au serveur lors de la premiere requete HTTP, il est dur de justifier que le serveur n'a pas access au hash, etant donne que le code javascript de la page y a access et pourrait tres bien l'envoyer au serveur.
Exemple : http://www.slikk.com/#zerobin Le mot cle de la recherche est dans le hash, et pourtant…
You could/should leverage the interest you've gotten from various social sites in recent days by putting your source code on something like github.com.
Folks would be able to fork it, hack at it, submit pull requests back to you, and things would be generally better all around.
You're right. I never took the time to open a git for ZeroBin (or my other project Shaarli). I should definitely do that, but I will have to take the time to do it properly.
regardless of whether the sourcecode is clean or not, there will be people to make pull request to clean the code or provide new features me first !
Trop cool. MERCI pour les sources. Je vais me pencher dessus au plus vite.
Le plus marrant, c'est qu'en fait il n'y a pas grand chose. Juste quelques briques qui existent déjà assemblées.
Je pense que c'est une question d'avoir une bonne idée au bon moment.
Are you sure the ”#” component of the URL is not sent to the server?
(in all browsers)
I haven't seen yet a browser which sends the anchor to the server.
Very ingenious. A suggestion for improved ease of use.
Allow users to pick their own passwords, add a random salt (included as the first bytes of the message),
then extend them with an algorithm (such as PBKDF2) to generate the full key.
This would allow shorter links such as
http://sebsauvage.net/paste/?7e6029731664928c#CorrectHorseBatteryStaple (See https://xkcd.com/936/ )
http://sebsauvage.net/paste/?7e6029731664928c#WLEuuzCjKU2OI4mpCBeviOQW3ancrbaZ/L2dvwqLopU=
It would make it possible for users to share a memorable pass phrase, rather than a key which needs to be written down.
Yes, PBKDF2 is planned (The functions are even included in SJCL.). This will be included in future versions.
Très beau projet. Par contre j'ai quelque chose qui me dérange un peu : A la base ça a été fait pour éviter les censures de pastebin contre les leaks génant et autres. Cependant je ne vois pas en quoi ça empechera les censures. Si pastebin supprime un fichier c'est que quelqu'un lui en a fait la demande. Et si quelqu'un en a fait la demande c'est qu'il a trouvé un lien sur un forum ou autre. Et il y a de très grandes chances que ce lien contienne aussi la clef non ? Ou alors on parle d'autres cas de figure ?
Je crois surtout que Seb devrait faire une grosse mise en avant de l'objectif de Zerobin. Le but de zerobin, c'est que l'hébergeur ne sache pas ce qu'on écrit. Il ne voit que du texte codé. Seul l'écrivain et les lecteurs qui ont la clef savent. Donc imaginons qu'on mette du contenu illégal. Le serveur ne sait pas que c'est illégal. Mais si, au hasard, un avocat ou un juge lit le texte car il a l'URL (et la clef) et qu'il demande à l'hébergeur de supprimer le paste, l'hébergeur doit le faire. Point. Mais on ne peux rien reprocher à l'hébergeur :) Zerobin, c'est pour protéger l'hébergeur et au final l'utilisateur car bien sur zerobin ne peut pas communiquer le contenu qui serait illégal. Au contraire de pastebin qui a pu dire au FBI : ok, voici la liste des paste illégaux et la liste des ip qui ont écrit ce paste. Là, même pas sûr que zerobin sache quel ip écrit le paste. J'ai bon chef ? :)
Thank you! On the way home I was wishing someone had written something like this, but I didn't know that you had. I arrived home, and discovered this project. Wonderful!
Très bonne initiative l'alternative de Pastebin. Je trouve quand même dommage que l'URL que génère Zerobin est assez complexe. Essaye d'y attacher un service comme http://ow.ly/url/shorten-url qui se charge de raccourcir une URL, je ne suis pas en mesure de te confirmer que cela est techniquement faisable
Exemple
Hello. L'utilisaion de ow.ly n'est pas possible, car elle requiert une clé API, donc ce serait le serveur ZeroBin qui effectuerait le racourcissement d'URL, ce qui est impossible puisqu'il n'est pas censé la posséder.
Snipurl.com est l'un des rares services dont on peut faire appel simplement par un lien côté client.
Pourquoi ne pas proposer aux utilisateurs le desirant, d'entrer leur cle API ow.ly dans leurs parametres de compte ZeroBin ? Si celle-ci est fournie et valide, faire l'appel avec cette API depuis le client.
Simple et joli, un projet plus que sympa :)
Un petit plus serait à mon avis la possibilité d'utiliser un échange de clés publique / privée entre serveur et clients, qui éviterait de devoir saisir les hashs. Je m'explique: Plutot que de communiquer une adresse plus un hash forcément compliqué(même huamn-readable-isé, ça restera forcément volumineux), je passe une clé à mes interlocuteurs, et le browser utilise directement cette clé si elle est disponible et qu'il n'y a pas de hash dans l'url.
Par contre, je dois avouer que techniquement, je suis ps sur que ce soit faisable / facile (utilisation des certificats? Autre?)
Autant ça me plairait beaucoup, autant la crypto à clé publique/privée n'est pas évidente en php ou en Javascript. Ce n'est pas quelque chose qu'on peut intégrer facilement.
Je me doutais que c'était pas évident techniquement (je vois pas comment le browser pourrait avoir accès à ma clé sans plugin / extension le lui permettant), mais je me disais que je connais pas forcément toutes les solutions.
En guise d'alternative, ne peut-on pas envisager que la clé, plutôt que d'être passée par “ancre” puisse être renseigné dans un input de type password, ainsi, la sécurité est garantie par le password manager du browser, et on peut avoir une clé unique par domaine, par exemple (en fait, je pense “groupes d'utilisateurs”, si tu vois ce que je veux dire)
ça voudrait dire pratiquement ré-implémenter GnuPG en javascript. Remarque tu sais quoi ? ça existe: http://gpg4browsers.recurity.com/
Bien que ce soit une extension Chrome, c'est implémenté en Javascript et ça devrait être adaptable à d'autres navigateurs.
Je pense qu'il y a de quoi faire des choses intéressantes avec. Un jour peut-être (j'y pense fortement pour le successeur de VroumVroumBlog, qui aura besoin de crypto asymétrique).
Très bonne initiative, mais je vois quelques petits problèmes quant à la justification comme quoi le serveur ne “peut pas” décrypter les données…
Déjà, lors du décryptage, le serveur aussi reçoit la clé, et non pas uniquement le client, donc le schéma correct devrait être : http://s7.postimage.org/ynspfg1ej/zerobin_figure_decryption_real.png
Que le serveur utilise cette clé ou pas, peu importe, le serveur la reçoit, et pourrait donc très bien retourner le texte décrypté directement au lieu de laisser javascript le faire sur le client.
Et d'ailleurs, comment savoir si la clé est correcte et que le message peut être décrypté ? Disons que je change une lettre par une autre dans la clé de l'url, la nouvelle clé est toujours valide (au sens clé AES), et, lors du décryptage, ça devrait juste donner un message illisible au lieu du message attendu, or, ça dit que la clé n'est pas valide et que le message n'a pas pu être décrypté ! Intéressant ! Il doit bien exister des clés autre que la clé “valide” qui retournent uniquement des caractères “normaux” après décryptage…
Si tu avais lu les commentaires tu aurais vu que le problème avait déjà été abordé et que non le serveur ne reçoit pas la clé, car les navigateurs n'envoient tout simplement pas le hash……
Pour le second point, c'est également quelque chose qui m'a laissé un peu perplexe quand j'ai vu que SJCL levait une exception au lieu de me sortir du charabia. Il faudra que je prenne le temps de regarder dans le code source de SJCL quand j'aurai fini d'implémenter la nouvelle super fonctionnalité secrète.
Pour le second point, je ne connait pas SJCL mais le mecanisme utiliser par truecrypte pour ce point est tres simple. Par exemple, avant d'encrypter le message l'API ajoute une sorte de cle de verification au debut du message en claire, comme “verification” or “123456” ou quelquechose de plus complique lie a la taille du message. Ensuite lors du decryptage il suffit de relire le debut du message decrypter :
La méthode de vérification du mot de passe de TrueCrypt est l'une des meilleures que j'ai vues. Ils ont bien pensé les choses.
J'espère juste que les auteurs de SJCL n'ont pas bêtement stocké une sha de la clé (mais je ne pense pas, j'ai le sentiment qu'ils savent ce qu'ils font).
J'ai vu après, mais y a pas de bouton pour supprimer les msg ;)
Bravo, projet génial : malin, simple et efficace.
Une option “burn after reading” pourrait être pratique (message détruit après la 1ere lecture réussie). Je pensais que cela ne serait pas si simple de détecter le bon décryptage du message mais apparemment ta librairie le détecte (ce que je trouve un peu curieux comme l a mentionné Tom Dalla avant moi)
Le bouton “détruire” pourrait être une idée (je vois très bien comment l'implémenter), mais je ne sais pas si je ferai (il faut que j'évite le “feature creep”).
Petite idee en passant : si on ne fournit pas de cle dans l'URL, proposer un petit form avec juste un textbox pour entrer la cle. Sauver la cle dans le localStorage, comme ca, la prochaine fois, meme sans la cle dans l'URL, on decrypte le message.
(aussi, passer sur bitbucket ou un bitbucket-like pour avoir un wiki et un bug tracker pour deposer des idees/bugs)
Pour la protection par mot de passe, j'ai prévu que si la clé n'est pas dans l'URL, un mot de passe soit demandé. La clé serait alors dérivée du mot de passe. On pourrait aussi fournir le mot de passe dans l'URL, genre: http://sebsauvage.net/paste/?7347c875ee96102b#montmotdepasse
Le localstorage j'y ai pensé, mais ça laisse des traces, et je ne trouve pas ça très bon pour la protection de la vie privée.
A quand un “autobin” pour répliquer un texte sur plusieurs serveurs Non, je rigole !
Mais j'y ai réfléchi
Ceci dit, il y a diverses choses qui posent problème, donc c'est remis à plus tard (ou à jamais).
Just want to say thank you, great stuff!
Hi, great idea!
Can you please add an additional option to upload files, please?
Just to add: RSA-keys to upload a text/file encrypted with the public key of someone
Hi there. Asymetric crypto is not easy in javascript or php. That would be interesting but that's not something I will be doing soon.
As far as file upload is concerned, I will not go that way, or ZeroBin would immediately be filled with AVI files. ZeroBin will stay a text sharing software.
Thx a lot Sébastien for this nice work you've done so far.
Just some thoughts on version 0.12 alpha
1) Comments with nickname don't work.
You get the error: Comment could not be sent (serveur error or not responding).
Also php5-gd is installed (debian/ubuntu) it seems that you need a php5 with gd bundled version to get all neccessary features of gd for the image generation.
To check if this feature is lacking on your server installation (output: bool(false)) use the following shell command:
php -r “var_dump(function_exists('imageantialias'));”
2) Deletion of data
for the function trafic_limiter the source in line 29 already states:
/ FI XME: purge file of expired IPs to keep it small
it'll be a good idea.
a) Only if an existing paste is opened zerobin will check if it's expired and then delete it. An automated function is needed to check all existing pastes and delete the expired ones. Otherwise it's possible to flood the server with 2 MB pastes which the attacker will never open again. All the files will be kept until the server runs out of space regardless of the expiretime.
b) At the moment e.g. for
http://xxxx/paste/?7cc3317771c2c6da#gWaxxxxxxxxxx
the directory data/7c/c3/
is created. Discussion is saved wihtin
data/7c/c3/7cc3317771c2c6da.discussion
After expiration the paste itself and the discussion dir is removed (only if the paste is opended → see a) )
line 272 rmdir($discdir);
In my mind Zerobin should check if data/7c/c3 is empty (afterwards same for /data/7c) after this deletion and if true → remove it.
Keep the server files clean of empty dirs
Hope this remarks might be useful.
1) I think I will remove the imageantialias(). It's not strictly necessary and seem to be a problem for a number of hosts. Thanks for pointing this out.
2) and 3) : ZeroBin obviously needs some kind of cron maintenance. I think this can be done with a background php task run once a day (eg. start cleaning process after the page has been processed for a random user and buffer flushed.)
Thanks.
J'ai regardé un peu ton JS, et je vois partout des `$('button#sendbutton')`. Un id étant par définition unique, il est inutile et contre-productif d'utiliser des sélecteurs du type `foo#bar`, utilise `#bar` à la place, ça sera beaucoup plus performant.
D'après ce que j'ai pu lire sur le net, le fait d'ajouter la balise permet justement de gagner en performances (puisqu'il ne scanne que certaines balises au lieu de toutes les scanner à la recherche de l'ID). Je me trompe peut-être ? (je n'ai pas benchmarké, je me suis basé sur ce que j'ai lu.)
Hello Séb,
J'hallucine sur la facilité et la rapidité que tu as eu pour monter ce petit projet qui devient juste ENORME.
J'espère que les événements politiques à venir, n'amèneront personne au pouvoir qui serait capable ces prochains temps de décréter que l'auteur d'un tel programme est évidemment complice de terrorisme pédo-nazi :/
Bravo et @+
Hey, Maybe it should be nice to promote website who host this program? We're hosting it on bin.artikel-140.nl Selfsigned cert…..
Someone is thinking about this (an API), but nothing is done for the moment. That's a good idea.
The best I can do for now is an Etherpad: http://pad.telecomix.org/zerobins
I love the idea !
But I see a point of failure left: What if the server disappears ?
With the disavantage of making the URL even longer, adding some kind of Magnet-link to identify the (encrypted) content would be awesome !
That way, people could “resolve” broken links using another host.
You're asking for a P2P-over-web
That would be nice, but I didn't really take time to think about it.
One simple solution could be redirecting the user to another ZeroBin (passing along the requested paste) until a ZeroBin has the information. I would have to add a multi-posting feature, but this raises a lot of questions (spam, possible attacks…) which are not addressed yet.
Bravo et merci Seb pour toutes les excellentes applis que tu développes et mets à disposition.
Serait-il possible d'intégrer un générateur (et pourquoi pas lecteur) de QR-Code (comme tu l'as fais dans Shaarli) ?
Tout de bon pour la suite.
Ce programme est utile, en témoigne ce qui est arrivé à RiseUp.net, dont un serveur vient d'être saisi http://www.forbes.com/sites/andygreenberg/2012/04/19/fbi-seizes-activists-anonymizing-server-in-probe-of-pittsburghs-bomb-threats/
Et ça fait plaisir de lire: “Our position is that anonymous speech is vital to a thriving democracy,” he says. “Anonymous remailers are used by democracy activists, people in oppressive regimes and whistleblowers. There isn’t a way to run an anonymous remailer that allows good anonymous speech and not bad anonymous speech.”
Tiens justement, Andy Greenberg, c'est lui qui m'a contacté.
Et un de plus http://zerobin.alwaysdata.net/
Merci !
Pour rebondir sur l'histoire de réplication, un exemple de flux :
On ouvre un paste. A coté du bouton clone, il y a un bouton réplication.
On clique sur ce bouton, on entre l'url d'un autre ZeroBin.
Sur l'autre ZeroBin, un paste est créer (avec une nouvelle clé de hash!).
Sur le ZeroBin source, le paste est mis à jour (une valeur “Mirror” apparait en bas du texte, avec la liste des paste miroirs (hash y compris) et les dates de réplication).
Bonjour, petite notice (error_reporting = E_ALL) lors de la lecture d'un paste sans discussion :
Notice: Undefined property: stdClass::$opendiscussion in zerobin-0.13-alpha/index.php on line 285 Call Stack: 0.0001 633400 1. {main}() zerobin-0.13-alpha/index.php:0
De plus, lors de la création du premier paste, une tite erreur : Data could not be sent (serveur error or not responding).
oui j'ai vu la notice: en soit ce n'est pas grave. (propriété absente = discussion non ouverte).
Par contre, tiens, je n'ai pas cette erreur au premier paste. Tu as ré-essayé avec la 0.14 ?
Alors avec la 0.14 plus possible de paster :p
En zieutant avec firebug, ca vient de la : Notice: Undefined index: burnafterreading in /zerobin-0.14-alpha/index.php on line 176 :
if ($meta['burnafterreading']) unset($meta['opendiscussion']); ⇒ if (isset($meta['burnafterreading'])) unset($meta['opendiscussion']);
un seg fault en gros ;p
d'ailleurs, au lieu d'un isset je mettrais plutôt un array_key_exists :
$meta['key'] = null; var_dump(isset($meta['key'])); var_dump(array_key_exists('key', $meta));
resultat : bool(false) bool(true)
:D
Sinon, pour le problème initial, ca vient de ça :
Warning: chmod(): Operation not permitted in /zerobin-0.14-alpha/index.php on line 135
Qui est de ma faute, cependant le paste coté serveur est quand même créé (dossiers + fichier), d'ailleurs avec l'erreur du dessus aussi les fichiers sont créés
Notice: Undefined property: stdClass::$opendiscussion in /home/davide/public_html/pastanon/index.php on line 285
Solved adding the following code after line 135 in the index.php file
$meta['opendiscussion']=false;
Alternative solution is edit the line 285 of the index.php file from:
if ($paste→meta→opendiscussion)
to
if (isset($paste→meta→opendiscussion) && $paste→meta→opendiscussion)
Anyway is not a fatal error
Great job!
Please add language files to ZeroBin and use the preferred language of the used browser. If the preferred language is not available use english as default language. I would like to translate ZeroBin to german as soon as a language file is available.
mmm… do you have a simple way to centralise transations from php, html template and javascript ?
You could use PHP vars in each language file. (german.php, english.php, francaise.php) This could be used in PHP and HTML. I don't know how it should work in JS.
@erwan, @davidonzo : I correct all this and I publish a new version. Thanks for pointing out the problems.
Il y a aussi celle la : Notice: Undefined property: stdClass::$burnafterreading in /zerobin-0.14-alpha/index.php on line 326 :p
Please add the possibility to use own templates and own css. (page.html) The active template could be configured in a configuration file.
I'm not a software expert so this may be nonsense:
It seems to me like the only real security issue is getting the encryption library from the server. I run a simple HTTP server on my own machine for various reasons and it is very simple to setup and maintain. How about a 2-part version of zerobin that stores the encryption portion of the code on the local server and just uses the web server for storage and key generation? It seems to me that this would eliminate the problem.
You've got this point right: The problem is the distribution of the crypto code.
But your solution means downloading a sofware to the client to be able to view the pastes. That's not what I intended to do.
Add a Flattr button to the page.html, so that anybody can Flattr your great work.
Done ! And thank you.
Just minor typos..
It's a bit problematic for me to have a french interface.
It would be nice if you change the default to english.
Two ideas I had in mind:
1) I did not know about this. Thanks for the link. I will be reading this. 2) I don't see the advantage here.
Super idée!! Vraiment efficace et réponds à une vrai problématique. Et quelle activité!
J'ai parcouru le code et j'ai remarqué qu'il n'y a aucun moyen de supprimer le fichier si la date d'expiration est dépassée et que personne ne consulte le post. conso HDD++ J'ai hâte de voir le projet sur Git pour faire des propositions ;) Celles ci seront : POO, Storage (File, Cloud, DB)
oui il y a encore des choses à faire. Le dépôt Git sera ouvert dans les semaines à venir.
Is there a git repository available, so that we can send pull requests?
Git repository is planned in the upcoming weeks.
Bug : Quand un message est supprimé par le serveur, expiration par exemple les dossiers restent en place eux.
C'est sans importance. Les dossiers ont de forte probabilités d'être réutilisé pour d'autres pastes.
Salut Tu es vraiment génial Seb J'ai 2 trucs pour ta todo liste : - ajouter une expiration dans 5 minutes et 7 jours. 5 minutes, c'est pratique pour poster des liens dans des discussion rapide et 7 jours, lorsque l'on envoi le liens par mail et que l'on ne sais pas dans combien d'heure les destinataires liront le lien. - (en dehors de zerobin) un flux rss ou un tags dans shaarli pour être tenu informé des mises à jour
Pour rebondir sur la première proposition, ça serait pas mal de pouvoir mettre une expiration au nombre de lecture. “Expire après 10 affichage du message”.
Comment on peut annuler la souscription aux e-mails lors de nouveaux commentaires ?
euh… c'est pas prévu. Je verrai si je peux supprimer ton email de la liste en bidouillant les fichiers.
T'embetes pas, j'ai mis un filtre spam. Et je te conseille de migrer ton systeme de commentaires / idees / bug report / wiki sur Git (jsuis pas sur quils aient tout ca) ou BitBucket (ils ont).
Toujours 2 notices lors de la lecture d'un paste :
Notice: Undefined property: stdClass::$opendiscussion in /zerobin-0.15-alpha/index.php on line 293
Call Stack:
Notice: Undefined property: stdClass::$burnafterreading in /zerobin-0.15-alpha/index.php on line 321
Call Stack:
ah, mince. Bon il faudra que je re-regarde.
La même »
Notice: Undefined property: stdClass::$expire_date in /www/paste/index.php on line 289
Notice: Undefined property: stdClass::$burnafterreading in /www/paste/index.php on line 321
C'est un serv' offre “Perso” de chez OVH.
Je n'aurais pas oublié de mettre des droits sur un dossier, ou je ne sais quoi ? (mes connaissances en php sont trop faibles pour que je capte d'où l'erreur puisse venir, et j'ai rien vu dans la FAQ ou ici).
Dans tout les cas, encore un bel outil made by sebsauvage :)
Prend la version sur github : https://github.com/sebsauvage/ZeroBin
Ah oui, j'ai fait mon boulet…
Fixed, merci !
Ça ne te gène pas de laisser des dossiers vides sur le serveur ?
Non puisqu'en utilisation courante ils seront rapidement réutilisés.
Thanks Sébastien, I wont insult you with really bad french ..lol but a grate peace of software, and so handy. My apologies if this has been asked, but how do you change its time zone? I think it must have a northern time zone in it cause its a day out on my server sunday instead of monday when you send a message [for instance].
Thanks again. Mike
Configuration file is not done yet, but that's definitely something that will be done (this will include timezones, open discussion disabling, etc.)
bonjour et merci pour cette application. juste une question, est-ce possible d'installer zerobin chez free.
ça ne marchera pas à l'heure actuelle chez Free: J'utilise json_encode() qui est disponible à partir de php 5.2.0 et Free est encore en php 5.1. (Mais ils ont annoncé la mise à jour de php dans les semaines/mois qui viennent, tout espoir n'est donc pas perdu.)
Au pire, faudrait tester chez Free avec une fonction perso
genre, celle du premier commentaire:
http://php.net/manual/fr/function.json-encode.php
http://dl.free.fr/getfile.pl?file=/7uVWsoBJ
Voila une version qui fonctionne chez free.fr avec import de JSON.php, ainsi qu'une fonction base64_decode_fix que j'ai trouver ici: http://fr2.php.net/manual/fr/function.base64-decode.php#79098 Je ne sais pas trop si c'est la bonne solution car pas trop compris le pourquoi du comment du bug du $strict=true.
mais dans l'absolue cela fonctionne.
merci pour cette réponse rapide :D
Sauf erreur de ma part, lorsque j'accede a un paste avec l'option “Burn after reading”, celui-ci est supprime meme si la cle est incorrecte. Ca ne serait pas plus logique qu'un tel message ne soit supprime qu'une fois correctement decode ? Du coup, je ne sais pas si c'est faisable (vu qu'il faudrait que le serveur sache que le message a bien ete decode, justement)…
Erreur confimée :p
Ah ? Je cree un message avec l'option Burn after reading. ⇒ http://sebsauvage.net/paste/?d2ec315b34b4e20d#x6v8JiDlQ7dUWcvSnBCwMxXJTRh1ZF8XAcRz5a7p6iQ=
J'accede a http://sebsauvage.net/paste/?d2ec315b34b4e20d (erreur : Cannot decrypt paste: Decryption key missing in URL) ou http://sebsauvage.net/paste/?5dda7f7ffe328941#portnawak (erreur : Could not decrypt data (Wrong key ?)). Normal.
Maintenant, j'utilise la bonne cle : http://sebsauvage.net/paste/?d2ec315b34b4e20d#x6v8JiDlQ7dUWcvSnBCwMxXJTRh1ZF8XAcRz5a7p6iQ= (⇒ erreur Paste does not exist or has expired)
Si j'accede directement a l'url contenant la bonne cle juste apres la creation, j'ai bien le message “for your eyes only” qui s'affiche…
Erreur dans mon raisonnement ?
Par 'erreur confirmée' je voulais dire que le paste en BaR (Burn after Reading xD) est effectivement supprimé si la clé n'est pas bonne / donnée :)
Par contre pour corriger ça, c'est autre chose :/
Il ne faut pas que la suppression soit sous contrôle du client, sinon cela autorise plusieurs lectures, et ce n'est plus “for your eyes only”.
Sinon un hacker pourrait aller lire le paste (par exemple dans l'espoir de mettre la main sur la clé plus tard), et cela passerait inaperçu.
Là au moins, si le paste est “non trouvé”, c'est un signale fort: quelqu'un a intercepté l'URL et a essayé de la lire.
… Même s'il n'y est pas arrivé …
La vache, j'avais pas pensé à ça et j'aurais aussi pensé que c'est un bogue. Perso, j'aurais pensé que si le past est expiré c'est que quelqu'un l'a lu mais à ce que je vois, pas forcément. Bon à savoir, merci.
J'ai créé une issue sur le GitHub : https://github.com/sebsauvage/ZeroBin/issues/6
En effet, pour les pastes en “burn after reading”, il faudrait que ce soit le client qui une fois qu'il a décrypté le message demande au serveur de supprimer le paste.
hi.I am trying to send the encrypted message as a jsonp to use it on cross-domain.The encrypted data that is sent is {“data”:”{\”iv\”:\”e5yilvEx8GjbHD\/EaHQh4A\”,\”salt\”:\”BzzFpgRaAa8\”,\”ct\”:\”s6FN7J4IzAyCb+qxNmntLLXRmHU\”}”,”meta”:{“expire_date”:1337800654,”postdate”:1335208654}} Where in the code does the message gets all those slashes (/\)? Here is an example http://kasem.gr/vasilis-dev/zerobin-015/?df58ecd75dd1b1d8 Its stored on http://kasem.gr/vasilis-dev/zerobin-015/
Because there is a json embedded in the json.
The first key, “data”, is the ciphertext message generated by SJCL, in json format. As is it embedded in my json message, all double-quotes have to be escaped.
Then comes “meta”, meta-information about this message (expiration date, nickname…)
I dont get it.I only need to store the iv,salt,ct values as a json string.So when somebody asks for a paste the answer is {“iv”:“omdbivzeW17yjQg9g9A7cg”,”salt”:“sEGIC2rtRfo”,”ct”:“hZYJjT0sCnaZRxVi”} without meta or any other properties(for now!!).It seems to me that this data is saved on line 64 on $jsonstring, so i did $neededdata=$jsonstring; and then on line 257 i did file_put_contents($storagedir.$dataid,neededdata);.The result is that nothing is saved.
i am sorry for the new comment.it was by mistake.Also neededdata is $neededdata.
I found it.The data i need was saved on line 153 as $data. thank you anyway for this wonderfull zerobin.I will use your code for my diploma if you dont mind.Ofcourse you will be on the credits.I will post you details when i finish my project. Also i am sorry for being a little of the subject on this discussion.
No problem !
so if I am to understand the code correctly .. the key for decryption is then stored on the snipurl service as part of the url indexed by the short url…? ie a NSL(national security letter) in the US would make that a not very effective way to store the key if so…(if the url shortening service is US based or hosted) seems both dynadot and snipurl.com are in san mateo, california..
Am I out in left field on this??
Some people asked for the shortening feature, but I will remove it in next versions (in fact, it's already removed in GitHub).
http://briancray.com/2009/08/26/free-php-url-shortener-script/ and https://code.google.com/p/phurl/ seem to be free url shortening scripts but they are dependent on mysql. I was thinking perhaps the answer might be to store the encrypted data in an sqlite type database called http://sqlcipher.net/ ie and encrypted DB(this would also relieve the too many files/directorys issues of flat file management.) and/or create a safer URL shortener based on the above and sqlcipher…
ideally, the shortening service should not belong to the same server, or the server would have the keys. I will give up the shortening feature alltogether.
I am also looking at zerobin as a tor hidden service, yes a file upload option that can be enabled or disabled by the admin(how would that work with the crypto in the browser issues?)
oops almost forgot
zerobin.permutation.net :)
Well I'm not keen on adding a file upload feature.
Amend your Links section to include the similar service privatesky.me with the note that it has tracking scripts, has an email theme to it with registration, and lacks the ability to delete messages AFAIK. Would you consider the “feature creep” of Mozilla Personas (formerly Browser ID: identity.mozilla.com) to make Zerobin social with friends lists subscriptions? Browser ID is a login feature that does not log user access and eliminates the user's need for passwords by remembering keys in the browser. Remembering keys in the browser and encrypting data so that the servers can not read it are two similar features of privatesky.me, both of which are shared with Browser ID and Zerobin, respectively.
hmm I was thinking about running both zerobin and a rewritten version of one of the above url shorteners as separate tor hidden services with the urlshortener to use SQLcipher from the getgo…and on a seperate server… but again NOT visible to the open internet…with the DB encrypted for the URL shortener..
As to the file upload feature.. make it selectable with a config flag.. that way those of use who run a private zerobin OR who want to get disk overrun with encrypted xxx porn can choose to do so…:(
ie think of wikileaks and the collateral murder flick for HR type examples of why this feature could be very much wanted by some of us demoing the code..
cool I have just had 2 posts I didnt make at zerobin.permutation.net(have to get the startssl.com cert I generated for zerobin.permutation.net installed and visitors redirected to an https url instead
btw brilliant and fiendishly simple concept and execution for ZeroBin… Kudos!!
I should mention also that privatesky is closed source and was originally a project for the government to securely exchange information with enough ease to do so while in battle.
I realised that there doesn't need to be a social network aspect to Zerobin. Rather, once it's operational, I could use it in social services like Facebook to post links for everything I post so my posts can be temporary. I'm wondering if it's safe to post the link with the key on statuses and comments on Facebook? Does Facebook also examine the links when you post them like url shorteners do? In that case posting the key would be bad. But, would using the upcoming password feature with Zerobin help that? I was thinking I could use the “burn after read” feature for private messages on facebook, the regular paste for statuses, and for comments I would use pastes with passwords because I couldn't use the “burn after read” feature or else one of my friend's friend's could read it before my friend could for his status. I could also use the “burn after read” pasts to distribute the passwords in a message for each person I want to be able to read the comment. Maybe even the “burn after reading” posts would have to be password protected with Facebook because one only has the option of not using the thumbnail, which proves Facebook already initiated the link, after it springs up. Instead of password protecting the “burn after reading” and, come to think of it–all posts because Facebook does read the content of every link, could I just post the link and the key in separate posts (comments, statuses, messages) or just separate lines per post? Anyway, just wondering what the optimal privacy ways are to use Zerobin with Facebook?
hmm..
its now https://zerobin.permutation.net :)
@gwen. I'm starting to use your zerobin.permutation.net. I hope that you will comply to take down requests by the authorities in cases of child porn and stolen credit card credentials or social security numbers, so that you will not end up taken down yourself like happened to Anonymous' Zerobin site recently. But, let me know if you get regular porn to work with encryption like I think you've mentioned, if I didn't misunderstand you.
Hi there,
It should be remembered that https://zerobin.permutation.net and http://2pdkdy3eo552mpiz.onion/ are test services whose data can be deleted at ANY time indeed the service itself may completely disappear if it proves a legal issue.
And my main purpose for zerobin hosting is that so I can run forensics against a live working system to provide guidance to make zerobin more secure.
and since we dont provide media uploads yet I dont expect to get takedown notices yet.. and I will probably rehost the service on an onion node 1000's of kilometers from this one if I do take this one down.
Personally, I like that my data can be deleted at any time because I also enjoy the “right to be forgotten” movement.
Anonymous, AFAIK did not allow media uploads either and they still got taken down. I think it was because they openly confessed that they would not comply with any takedown notices. But, Zerobin does allow the administrator of the server hosting it to take down the directories of the offending addresses. It just doesn't know what's in them unless the key is shared with it, which would be possible with a takedown notice, because the authorities would not know to compel a takedown notice unless they knew what it was by having the key. That could be used to verify the notice with the admin before removal.
BTW I should mention I have less than zero interest in porn, my main interest in media is publishing surpressed and leaked scientific reports in full media form.
I dont know why the anonymous zerobin got taken down.. not interested.. I get enough complaints the service will simply vanish thats the facts of life.
I mainly want this service alive to offer adhoc private discussions without prearranging software or having anymore than a modern javascript browser.(and of course being able to publish leaks :)
”…without prearranging software or having anymore than a modern javascript browser.” Would that modern javascript browser need to be Tor Browser Bundle? Even so, wouldn't you still need an anonymous messaging service to share the link to the leaks? If so, I don't know of any. Unless you made a meta page that people can categorize their Zerobin pastes under so that people can find the leaks without needing to reveal an email or IP address.
How about a tor “addon” in javascript?
The anonymous zerobin is still available: http://www.peoplesliberationfront.net/anonpaste/ (The anonpaste.tk was just an ugly frame to this URL.)
Thanks for the link Sebastien.
Hey, would you mind setting github to announce to cia.vc? I think it'd be helpful/nice.
and on onion..
http://2pdkdy3eo552mpiz.onion/
Please add raw text display and/or copy to clipboard button. Please add code highlighting.
Legion has already provided such a patch to github: https://github.com/sebsauvage/ZeroBin/pull/7
You can test it here: http://elrido.dssr.ch/paste/
For open discussion mode the javascript should periodically check the server for new posting and if found download and decrypt to prevent the end user from repeatedly having to press reload….
This is on the ToDo list.
And drag and drop graphics media would allow the full publication of articles like this:
http://www.nature.com/nature/journal/vaop/ncurrent/full/nature10831.html
ie politically sensitive scientific articles and again the feature(upload graphics media) could be made an option to be turned off or on… perhaps just still formats initially(havent figured out yet how to encrypt and xmit cleanly or would have added myself)…
I do not plan to make ZeroBin a general file exchange platform. This is a pandora box I do not want to open.
https://zerobin.permutation.net/?f1ab71c762ea04e2#w8ZzIrma+zua/C8/ahDo9iqfSMNsDR5vCwaPPz3Cgk0= is how it looks at present level of pasting function
Very interesting project Seb, I am wondering if it would be possible to add Twofish and Serpent encryption perhaps?
I did not develop the crypto part (I use SJCL). For the moment, SJCL only implements AES.
Could this code http://home.versatel.nl/MAvanEverdingen/Code/ be hacked to add Twofish, Serpent and perhaps even RSA to ZeroBin?
That's a very interesting project you have here. I allowed myself to shamelessly steal most of it and reintegrate it in CouchDB. The advantage is that you can now copy a whole database of pastes (or only the one you want, if wish wish to do so) with one command. And you can have a live copy that will keep your backup up-to-date.
I renamed the project MultiBin. It's in here : https://github.com/rakoo/MultiBin
No problem. It's great to see people building things on top of ZeroBin.
Could this code http://home.versatel.nl/MAvanEverdingen/Code/ be hacked to add Twofish, Serpent and perhaps even RSA to ZeroBin?
Hey Sébastien! I saw ZeroBin a while ago already and – while I’m more of a designer than a coder – was pretty impressed.
A very related concept is the Unhosted movement: Decoupling web apps into client-side app logic and per-user data storage. Previously there were proof-of-concept apps where people needed to put in an additional password to encrypt and decrypt the data on the client, and ZeroBin seems to be a great approach which does not need any additional user interaction.
Did you hear about Unhosted before? It would be cool to join forces, or make ZeroBin completely client-side and compatible with the open remoteStorage protocol. Feel free to come to our IRC channel #unhosted on freenode, our mailing list https://groups.google.com/forum/?fromgroups#!forum/unhosted or check out our website at http://unhosted.org
I haven't heard of unhosted.org before. Thank you for the link, I will be taking a look at it.
Hello Sébastian, I really like your project and the idea! And of course that it is open source! Thanks for that. I have some ideas for improvement. May be you can add a password function. So the message could be encrypted with AES and a additional password. And it would also a good idea to add an other encryption algorithm. So people can choose between AES and an other algorithm. It would be interesting to know how it is possible to change from AES-256 Bit to AES-128 Bit. May be you can explain that.
Thanks for your project and kind regards
Thanks for your answer. Okay I overlooked the part with the password protection. My first reason why I want to use 128 Bit AES is, that the server load is reduced. I know that it doesn't matter for some pastes, but if many people post pastes at the same time, then it can matter which encryption algorithm you use. And I have a new idea. For every script which is created, you can create a kill link. So if someone posted something and it expires in one month, he can use the kill link to delete his past before it expires.
Kind regards
In fact, encryption is client-based, so the key size has no impact on the server.
Kill link is not a bad idea. I will add it to the ToDo list.
EDIT: I didnt see gwen response before answering.
as we are doing crypto in javascript in the browser… there is NO server load due to the crypto tax..thus no good reason to reduce keysizes.. indeed I am in favor of raising them if anything… 4096 bit DH anyone(this is what crypto.cat uses in javascript)
The important thing here is using zerobin over already encrypted connections only(https or tor hidden service) as the javascript for the crypto could be altered as its downloaded to the browser otherwise…
The kill link? that could be interesting…
We are currently testing ZeroBin here http://qwowp.co.cc/zb and it seems to be working perfectly. Keep up the good work Sébastien, merci beaucoup!
Hello Sébastien Sauvage, which Apache modules or rights are needed for this script? Because it tried it on a freehost and they were no problems until I changed to a payedhost. They said they blocked some Apache modules so that can be the problem why it doesn't work there. I uploaded everything but when I want to open the page it stays white.
Greets
Hello. No special modules are required, except GD to generate the visual hashed (but even this module is not mandatory). In fact, ZeroBin does not use any mySQL or specific libraries.
Which version of php is your server running ? ZeroBin requires php 5.2.6. Try to run a phpinfo() on your server to see which version you are using.
Also try enabling error_reporting(-1); at the beginning of the programe to see warnings and errors.
Thanks for the info with php. The server is running php 5.2.17 so that's the problem why it doesn't work.
I keep getting an error saying I cant create paste
Hi all,
oops the number of days timer already there I missed it…
oops.. need some sleep I guess
How is the development going? The last commit to the git repo is 3 months old .
I'm sorry, but I lack time (job change, hollidays too…).
does anyone know (my google-fu is weak) whether a command-line client (for creation of pastes) exists anywhere? I'm right now setting up a server for a local user-group and some people asked for that (e.g. to easily pipe command-output into a paste).
Command-line is not possible at this time. The crypto part has to be done on the client side and at the moment only the javascript version of the cryptolib exists.
Has node.js been tried as a client? Another suggestion - I'd like to be able to attach a password as well as a key, so that the URLs could then safely be made available in public locations. * Instead of serving content directly, add a URL redirection to another zerobin hosting the content. The server would then push the new hash to the client, and proxy the remote part, without the client being aware of which host the data is stored. * Use a subdomain instead of a GET parameter, to allow HTML + javascript/cookies.
Use cases: Evernote-style client in node. Anonymous hidden file sharing. Tor-like network for web content, possibly with collaborative editing using additional keys added to pastes. Using ajax or websockets, this could be done live.
Salut,
Bravo pour ce ptite “pastie” bien sympa. Cependant, il y a un bug qui m'agace pas mal. La msie en page ne tient pas.
Un copié / collé d'un texte d'une source avec mise en page vers le paste affiche la mise en page, mais une fois copié du paste vers un nouveau document, la mise en page est cassée.
C'est assez problèmatique pour l'usage que j'en ai…
Hello there! ZeroBin is awesome! But 1 little thing, I've found a small spelling mistake ;) http://gyazo.com/bd731c98c2d66dbad91f1ecdb6bc9289 'serveur' should be 'server'
Quick suggestion:
A simple API for desktop clients to upload and retreive ciphertexts for ZeroBin servers.
/api/push.php $_POST['cipher'] get stored in a database, document ID returned
/api/pull.php returns ciphertext for $_GET['id']
I'll look at the code tomorrow night and try to teach myself git so I can write and submit it ;)
This partially already exists:
/index.php $_POST['data'] to store a paste in the database. The return will be a JSON, eighter array('status' ⇒ 0, 'id' ⇒ PASTEID) or array('status' ⇒ 1, 'message' ⇒ 'reason for failure'). The data format is described here: https://github.com/elrido/ZeroBin/blob/master/INSTALL.md#for-developers-
/index.php $_GET[PASTEID] to get a stored paste as JSON inside a HTML document in a <div> with id=“cipherdata”. Here you could add another parameter for grabbing only the paste without the HTML around it.
Bonjour, 1) Je pense que la taille de la clé n'est pas 256 bit mais 128.
En effet, même si sjcl.random.randomWords(8, 0) est un “256” bitArray randomkey = sjcl.codec.base64.fromBits(sjcl.random.randomWords(8, 0), 0); est du type string dans ce cas la fonction encrypt génère un salt, après 1000 (par défaut) itérations, puis une key (de 128 bit par défaut).
cf http://bitwiseshiftleft.github.com/sjcl/doc/symbols/sjcl.html puis http://bitwiseshiftleft.github.com/sjcl/doc/symbols/src/core_convenience.js.html
je propose un function zeroCipher(key, message) {
}
2) Le fichier sjcl.js issu de zerobin_alpha0.15 est différent de http://crypto.stanford.edu/sjcl/sjcl.js - les paramètres par défauts sont inchangés… - l'objet json retourné les contient; Quelles ont été les modifs?
Salut Patrick,
Excuse moi, mon français n'est pas tres bon. Je vais répondre en anglais, donc.
1) Yes, the default function only uses a key size of 128 bit. But ZeroBin does not use randomly generated keys, it uses a randomly generated password as base for that key, so changing the key size without changing the password length will not necessarily make the key more secure. Here is a deeper look at it: http://lukenotricks.blogspot.com/2008/07/are-aes-256-bit-keys-too-large.html
2) There was be a bug in the random number generator of the SJCL library: https://groups.google.com/forum/?fromgroups=#!topic/sjcl-discuss/mFYehDbx2j0 They fixed it, so we should also update our source. (Have already done that in my fork: https://github.com/elrido/ZeroBin )
*Sorry Frenglish…* Thanks! I read your links. 1) So you agree: “Zerobin generate a random 256bit password as base of a 128 bit key (by defaut) which is used for encryption.” So “Zerobin provide a 128 bit encryption, not 256.” NB: just modify the zeroCipher function as shown to provide a 256bit encryption.
2) If found that the link “minified version” to sjcl.js on http://crypto.stanford.edu/sjcl/ point not the same file that https://github.com/bitwiseshiftleft/sjcl/blob/master/sjcl.js. I switched to github version (which is curently same of yours).
Best Regards.
Just a little correction regarding 1). From Wikipedia: “AES is a variant of Rijndael which has a fixed block size of 128 bits, and a key size of 128, 192, or 256 bits. By contrast, the Rijndael specification per se is specified with block and key sizes that may be any multiple of 32 bits, both with a minimum of 128 and a maximum of 256 bits.” So, changing the key size will not change the block size. And if you have a larger block size then 128 bit, its no longer considered AES. On the other side, I see no harm in changing the key size.
The zerobin list by Telecomix ( http://pad.telecomix.org/zerobins ) seems not to
be curently available on the Internets, so I looked for and found some. :)
Here is a list of Zerobins: web directories where the web appication “Zerobin“
is installed. It is a pastebin-like where data are encrypted on the server VIA
JavaScript in the browser.
The decryption key is featured in the URL, after “#” so that the key is never
known by the server nor transmited to the referer. It means Web analytics
softwares like Piwik or Google Analytics can not see the key, and so, they don't
see the “actual” content.
This also means the editor or hosting provider is NOT, in ANY WAY, responsible
for the content its hosts, because of the need of the #key to display the
content. (Technicaly # only leads you to a specific place of the webpage. Here
the developer of Zerobin did a clever use of # ;)
Most of the following installations of Zerobin feature this fonctionalities:
* open discussion (comments),
* burn-after-reading mode (only ONE display),
* up to one year and even NEVER auto-deletion.
First, a sub-list of Zerobins natively reachable in HTTPS (= your ISP won't even
know you saw there):
* https://zerobin.permutation.net/
* https://riebart.ca/zerobin/
Then, most of other Zerobins:
* http://paste.cmn.me.uk/
* http://the-nopaste.is-a-lie.at/ (in German)
* http://zerobin.zertrin.org/
* http://paste.linuxundich.de/
* http://danishdigital.com/ (no discussion)
* http://zerobin.hbcom.info/ (not one year, not never deletion)
* http://sebsauvage.net/paste/ (the original)
* http://zerobin.org.ua/
* http://traviscj.com/ZeroBin/
* http://www.infovlad.net/
* http://dakevinn.co.gp/paste/
* http://zerobin.i2p.to/ (with explanations when your JS is disabled)
* http://zerobin.pajonzeck.de/
* http://www.titouanh.com/pastetext/ (in French, seems not to work)
* http://zerobin.thican.net/
* http://fullmaj.rd-h.fr/zerobin/
* http://paste.ethernia.net/ (not one year, not never deletion)
* http://paste.piratux.com/
Finally, some other services that enable you to encrypt your data:
* https://ezcrypt.it/
* http://securepastebin.com/go/index.action
Enjoy !
Today (friday) there will be another list posted, a much monger than this one above.
A second set of ZeroBins servers lists:
HTTPS servers: - https://i1984.cz/paste/ - https://cyphernaut.org/zerobin/ (no discussion) - https://s.gks.gs/paste/ - https://krakotztest.iriscouch.com/multibin/_design/MultiBin/index.html (actually not 100% ZeroBin but a fork: a derivated programm) - https://snip.dssr.ch/ - https://wtf.roflcopter.fr/paste/
Others servers: - http://7o6ybumn7jsg3jub.onion.to/bin/ (via TOR & https://onion.to) - http://2pdkdy3eo552mpiz.onion/ (in the TOR network) - http://pastebin.itsover9000.de/ (no burn-after-reading mode) - http://localleaks.me/plf/anonpaste/index.php (no discussion) - http://bko-essen.net/ (no discussion) - http://pastebin.nullsec.biz/ (in Portuguese, no discussion) - http://cubepaste.info/ (with some hot image at the footer, no discussion) - http://anondat.com/paste/ (partially in German) - http://hasen-homepage.bplaced.de/zerobin/ (partially in German) - http://bencici.rd-h.fr/paste/ (partially in French) - http://zerobin.gamerz0ne.fr/ (partially in French) - http://paste.ehck.fr/ (partially in French) - http://www.karinafolkmusic.altervista.org/zerobin/ (introduction in Italian) - http://zb.yellowducks.net/ (big notice at the footer) - http://0.jaegers.net/ - http://paste.gehaxelt.in/ - http://paste.mefalcon.org/ - http://n.kablownia.org/ - http://kazuoo25.net/tests/zerobin/ - http://zerobin.cinan.sk/ - http://p.55.wf/ - http://bender.r0b0t.fr/ZeroBin/ - http://kinggoon.sr/paste/ - http://timjoris.be/paste.php - http://gilles.wittezaele.fr/paste/ - http://paste.crucif0rm.com/ - http://expect-us.net/paste/ - http://secbin.net/ - http://anadrark.com/zerobin/ - http://zerobin.alwaysdata.net/ - http://sepa.tk/ - http://tviblindi.legtux.org/paste/ - http://www.tilde3.eu/pastebin/ - http://u4ik.us/ - http://zerobin.carnialug.net/ - http://www.ponybin.net/ - http://p.jeremych.com/ - http://nullfile.com/index.php - http://p.mufff.in/ - http://wikileaks.kinderporno.cz/ - http://paste.chabotsi.fr/ - http://paste.ix.do/ - http://paste.ukikie.tk/ - http://bin.par-anoia.net/ - http://paste.vinilox.eu/ - http://www.zz9nation.com/paste/ - http://nano-host.co.uk/paste/ - http://nopaste.immersight.de/ - http://barryhensey.net/zerobin/ - http://paste.kyleundefined.com/ - http://ec2-50-17-2-161.compute-1.amazonaws.com/zerobin/
By a kréatic.tv/'s partner
Oh dear. I hope this time the lists will be better rendered.
HTTPS servers:
- https://i1984.cz/paste/
- https://cyphernaut.org/zerobin/ (no discussion)
- https://s.gks.gs/paste/
- https://krakotztest.iriscouch.com/multibin/_design/MultiBin/index.html (actually not 100% ZeroBin but a fork: a derivated programm)
- https://snip.dssr.ch/
- https://wtf.roflcopter.fr/paste/
Others servers:
- http://7o6ybumn7jsg3jub.onion.to/bin/ (via TOR & https://onion.to)
- http://2pdkdy3eo552mpiz.onion/ (in the TOR network)
- http://pastebin.itsover9000.de/ (no burn-after-reading mode)
- http://localleaks.me/plf/anonpaste/index.php (no discussion)
- http://bko-essen.net/ (no discussion)
- http://pastebin.nullsec.biz/ (in Portuguese, no discussion)
- http://cubepaste.info/ (with some hot image at the footer, no discussion)
- http://anondat.com/paste/ (partially in German)
- http://hasen-homepage.bplaced.de/zerobin/ (partially in German)
- http://bencici.rd-h.fr/paste/ (partially in French)
- http://zerobin.gamerz0ne.fr/ (partially in French)
- http://paste.ehck.fr/ (partially in French)
- http://www.karinafolkmusic.altervista.org/zerobin/ (introduction in Italian)
- http://zb.yellowducks.net/ (big notice at the footer)
- http://0.jaegers.net/
- http://paste.gehaxelt.in/
- http://paste.mefalcon.org/
- http://n.kablownia.org/
- http://kazuoo25.net/tests/zerobin/
- http://zerobin.cinan.sk/
- http://p.55.wf/
- http://bender.r0b0t.fr/ZeroBin/
- http://kinggoon.sr/paste/
- http://timjoris.be/paste.php
- http://gilles.wittezaele.fr/paste/
- http://paste.crucif0rm.com/
- http://expect-us.net/paste/
- http://secbin.net/
- http://anadrark.com/zerobin/
- http://zerobin.alwaysdata.net/
- http://sepa.tk/
- http://tviblindi.legtux.org/paste/
- http://www.tilde3.eu/pastebin/
- http://u4ik.us/
- http://zerobin.carnialug.net/
- http://www.ponybin.net/
- http://p.jeremych.com/
- http://nullfile.com/index.php
- http://p.mufff.in/
- http://wikileaks.kinderporno.cz/
- http://paste.chabotsi.fr/
- http://paste.ix.do/
- http://paste.ukikie.tk/
- http://bin.par-anoia.net/
- http://paste.vinilox.eu/
- http://www.zz9nation.com/paste/
- http://nano-host.co.uk/paste/
- http://nopaste.immersight.de/
- http://barryhensey.net/zerobin/
- http://paste.kyleundefined.com/
- http://ec2-50-17-2-161.compute-1.amazonaws.com/zerobin/
Thanks for the list !
Salut,
Est-ce que récemment Google n'a pas dit qu'il planifiait (si pas déjà fait) d'exécuter le JavaScript ? Je ne sais pas, je demande confirmation si quelqu'un a l'info …
Cordialement.
Excellent projet comme d'habitude, un grand grand merci à toi pour le partage seb :)
oui Google a commencé, mais ça reste très limité. A l'avenir, il faudra mettre en place des robots rules (que Google respecte) et si ça ne suffit pas, mettre un système de pseudo-captcha.
Any plans for 'public pastes' or 'trending pastes' features like on Pastebin? I never paste things but I sometimes like to see what others are pasting.
hmm public pastes or trending pastes???
The URL shortener tiny.cc does NOT strip/cut the sharp character (#) and so “respect” te whole URL (in 301 = permanent redirection). So it's convenient for Zerobin, along with sn.im, cl.lk …
Example : http://tiny.cc/slapp .
Same story for is.gd , eg http://is.gd/PrRQEH .
More time has passed… any news on a new version?
Je ne sais pas si ça a déjà été discuté (pas à ce que j'ai vu). Y a-t-il un système de notification en cas d'ajout de commentaires sur une page zerobin ? Si je lance une discussion avec zerobin, suis-je obligé de repasser régulièrement sur la page pour vérifier s'il y a des nouveaux commentaires ? Désolé si cette fonctionnalité existe déjà ou a déjà été discutée.
Une solution à ça consisterait à pouvoir ajouter une inscription d'e-mail à la manière des commentaires, e-mail qui sera notifié à chaque ajout de commentaire. Pour éviter le spam, une fois une inscription postée, cette inscription doit, par exemple, être validées dans les qlq minutes qui suit. Peut-être est-ce trop de travail pour pas grand chose.
Can we implement a commenting system like disqus.com ? it will be easy will be checked for spam automatically and give a good touch aswell .. whats your say ? it will even have notification option and so much more (single sign on and stuff)
good work +1
Je vois qu'ici vous utiliseez Zerobin peut être utilisé comme FORUM
Mes questions
1.- Si on veut utiliser Zerobin comme un possible FORUM SIMPLE. Serait-il possible:
a) de faire usage d'un MOT DE PASSE pour chaque posteur pour chaque discussion ouverte afin de pouvoir SUPPRIMER le fil de discussion et de modérer/élimier certaines réponses ? b) de mettre un MODERATION GENERALE (BAN) pour le propriétaire du ZEROBIN-FORUM ? c) d'installer à choix une image-header ? d) d'avoir des smilyes de base ? e) d'avoir un anti-spam pour chaque fil de discussion ? f) d'avoir automatiquement une “adresse-courte” pour chaque discussion générée ? e) d'ajouter en dessous du Nom et Adresse courriel, une ligne pour un titre et une url-adresse qui point sur un article extérieur afin de pouvoir commenter un article dont les commentaires ont été fermés ou sont modérés avec excès ? f) l'ajout d'une alerte via email en cas de réponse à un fil de discussion ?
Merci pour vos réponses - Nous sommes intéressés à un tel ZEROBIN-ADAPTÉ et prêt à financer une modification du code en vue d'obtenir un tel résultat. Faites-nous une offre.
Merci
Paste2me
Hello.
Là on sort un peu trop du cadre de ZeroBin. ZeroBin n'a jamais vraiment eu vocation à devenir un forum, avec modération et pages d'administration. Je ne pense pas que j'irai jusqu'à implémenter tout ça. Ce n'est pas le but de ZeroBin.
Il existe d'excellents petits forums qui feront tout cela bien mieux que ZeroBin.
Nice works…
just implemented into the Italian Pirate Party server:
https://zerobin.partito-pirata.it don't care now about ssl certificate error due to we're using a free certificate made for another name.
I've just to add one observation to your picture where you explain how it works:
when you click on the url you made a specific request to the remote server so it's not true that you request/pass ony the message id…but also the key…because the web server log the request…
if you check i.e. the Apache log you can see that there is the complete request…so the key was sent to the server and if the server is controlled…the message will be decrypted
but it's ok if you build a specific ZeroBin server without loggin so you reduce the risk and improve privacy
thank you very much for your work…really useful for me… bye
mutek
Hello.
Well, this is awkward. I tested ZeroBin with a lot of different browsers, and I've never seen this behaviour. ZeroBin has also been tested by third parties (including H Associates).
What browser are you using ? Which version ? Do you have extensions installed ?
i'm using zerobin as a comment system for nanoblogger. all of the comment systems for nanoblogger that i tried either didn't work at all, or didn't work right. this nanoblogger/zerobin page is being hosted on a Raspberry Pi running on the TOR network. the onion address (will only be valid during testing, and will change when testing is completed… about a month from now) is http://opnju4nyz7wbypme.onion/weblog/index.html and clicking on the “Comments” or “Contact Operator” links on the “Links” sidebar will take you to the zerobin page…
Lu,
S'agissant de la coloration syntaxique, je ne te conseille pas de gérer toute l'exécution en javascript. C'est un bouffeur de cpu pas possible…
Avec un applet java c'est théoriquement faisable en intéragissant avec la page (récupération du texte brut, traitement en java, et après pour l'affichage faut voir si tu préfères l'afficher directement dans l'applet ou en injectant le texte dans la page…).
Si tu optes pour cette soluce, un début de piste ici : http://www.raditha.com/java/alert.php Et si tu veux voir une “démo” d'une coloration syntaxique avec un appet, c'est possible ici (Clic droit sur un fichier puis “éditer ce fichier”) : https://ssl.jadorre.com/pa/ identifiant : CarineRenald2012 mot passe : CarineRenald2013
Cordialement.
Hello.
Java, c'est hors de question: Trop lourd, et surtout ça pose des problèmes de sécurité de nos jours.
La coloration syntaxique ne peut bien entendu pas de faire côté serveur (sinon cela voudrait dire qu'il a le texte en clair, ce qui est contraire à l'objectif de ZeroBin).
La seule option restante est le javascript…
Salut, je n'ai pas vérifié l'implémentation mais pour éviter d’alourdir un peu la chose (si c'est vraiment un problème) à charger du js à chaque fois (pour changer le texte en raw en texte avec coloration syntaxique) (je suppose qu'il s'agit de l'implémentation actuelle mais désolé si ce n'est pas le cas, je n'ai pas vérifié), au lieu de ça le texte pourrait être formaté une fois, à l'upload et stocké, crypté, avec la coloration syntaxique active.
Seul downside que je verrais à cette technique serait que ça prendrait plus de place sur le serveur.
Un autre positif par contre pourrait être que celui qui upload pourrait choisir/implémenter sa coloration syntaxique plutôt que d'implémenter une coloration par défaut … mais du coup ça entraînerait comme downside qu'il faudrait filtrer le texte qui s'affiche à l'écran pour empêcher des injections XSS.
Bon ok du coup c'est ptet moins intéressant :D je me suis fait un débat tout seul (du coup on pourrait dire qu'il n'a pas lieu d'être ici, mais la réflexion peut en intéresser certains ou être améliorée) (confer “de l'importance d'aussi reporter les expériences ratées”) meeh whatever.
Le problème de sécurité c'est seulement si l'applet est malveillant. Si le programme est clean ça ne pose pas de prob de sécu ;)
Non, le problème c'est Java lui-même. Il y a trop de failles de sécurité, et surtout trop de vieilles version non patchées de Java qui traînent qui conduisent à des infections. Je conseille désormais la désactivation de Java dans les navigateurs.
Je ne suis pas d'accord avec ton analyse. Encore une fois un applet est un programme à part entière (d'où sa “pseudo lourdeur”) : l'installer, d'abord c'est le garder une fois pour toute (pas de retéléchargement systématique) et c'est aussi accepter de faire confiance en l'éditeur au même titre qu'un programme classique que tu installerais sur ton OS. Est-ce que tu déconseilles l'installation d'un programme par exemple en c++ au prétexte qu'il peut nuire à ton pc ? C'est la même chose…la seule différence c'est l'exécution sans ton consentement (comme toutes les failles) et là il suffit non pas de tout rejeter en bloc comme tu le préconises mais d'accepter au cas par cas comme beaucoup de choses d'ailleurs. Java est un language puissant qui permet de faire des trucs qu'un autre language ne permet pas…tout rejeter est une solution de facilité un peu (excuses-moi) stupide.
Et si tu n'as pas confiance en l'éditeur, rien ne t'empêche de faire confiance en ton antivirus…
TOP 10 des sources d'infection selon Kaspersky. http://thenextweb.com/microsoft/2012/11/02/microsofts-security-team-is-killing-it-not-one-product-on-kasperskys-top-10-vulnerabilities-list/ En tête: Java, suivi par Flash et Acrobat PDF Reader.
Le fait est là: Java est un gruyère en matière de sécurité. Ce n'est plus un problème de faire confiance à tel ou tel éditeur d'applet, c'est java lui-même qui pose un risque de sécurité.
Et ce problème n'est pas nouveau: Apple qui décide de virer Java: http://sebsauvage.net/links/?mSGc6A Microsoft qui, dans Windows 8, coupera d'office tous les plugins (java, flash et autres). http://sebsauvage.net/links/?ijDMYw http://sebsauvage.net/links/?MUmozw Mikko Hypponen: Java considered harmful: http://sebsauvage.net/links/?wVjuPg etc, etc, etc.
Bref… Java posant à lui seul un risque de sécurité, il est hors de question de le laisser actif en tant que plugin dans les navigateurs (Et c'est dommage, parce qu'on pourrait faire des choses très sympas avec.)
Mais Seb, si tu t'arrêtes à ça tu ne fais plus rien du tout ! Toi qui aime bien python : http://secunia.com/advisories/search/?search=python php ! http://secunia.com/advisories/search/?search=php etc, etc… Ton point de vue s'apparente vraiment à une position partisane qui n'est motivé que par le fait qu'oracle est une grosse boite plein de tunes (sur lesquels microsoft et toutes ces firmes vendant des prog truffées de failles bavent allègrement dessus) vendant qui plus est plein de vilains programmes close source dont personne peut profiter…en tout cas c'est l'impression que tu me donnes. Les failles béantes au temps de sun existaient aussi et ce n'est pas pour autant que tu déconseillais l'usage de java…
Donc si je te suis bien : plus de java, plus de flash, plus de pdf, plus d'images non plus (source potentielle d'infections), plus de javascript, seulement du css et de l'html et encore, pas avec n'importe quel navigateur vu qu'eux aussi sont sujet à des failles. Plus d'internet quoi… Non sérieusement, donnes plutôt le conseil de mettre à jour je t'assure que ce sera plus simple ;)
à la différence que Python n'est pas intégré au navigateur, et qu'il ne suffit pas d'afficher une page web pour exploiter une faille.
Ma position est clairement partisane, oui, le partie de la sécurité.
Je regrette que Java en soit arrivé là, car les applets nous ouvraient de belle perspectives. Cela aurait été infiniement mieux que tout la chiée de Javscript utilisée abusivement pour faire tout et n'importe quoi (ou même Flash, d'ailleurs). Mais les faits sont là.
Certains en sont là oui. Ce n'est pas pour rien que désormais dans firefox Flash ne sera plus actif par défaut (il faudra cliquer), et que Mozilla a choisit sa propre implémentation pour afficher des PDF (PDF.js).
Et je connais certains internaute qui naviguent avec NoSCript.
Comment réduire les risques d'infection ? En se débarrassant des vecteurs les plus utilisés: Java, Flash, PDF, Javascript…
Concernant les mises à jour, oui on pourrait sans doute tuer 95% des infections liées à Java si les internautes mettaient à jour. Mais ce n'est pas le cas.
Et soit dit en passant, le temps de démarrage de Java n'est pas non plus négligeable. Ce n'est pas forcément léger.
Ca y est, j'ai trouvé ! Je suis tombé là-dessus et je me suis dis direct que c'était THE solution aux délires paranoiaque de mon tamagotchi préféré : http://lynx.isc.org/
Merci qui on dit ?
:P
T'aimes bien troller, hein ?
Bah c'est un raccourci quoi qui m'évite de démonter point par point ton troll précédent…on ne va pas non plus s'amuser à jouer toute la journée du fond du cour. Perso j'aime bien smatcher ;)
Je trolle ? Tiens, je viens de tomber sur ça: http://www.f-secure.com/weblog/archives/00002511.html
Java est la principale source d'infection…
Don't feed the troll :)
Peu importe lequel est-ce hein …
Hello Seb,
Pour la coloration syntaxique, si tu veux une solution assez simple et efficace malgré tout (et pour éviter des usines à gaz de détection de syntaxe que tu aurais à coder), je te conseille de jeter un oeil à highlight.js. C'est un petit projet qui fait de la reconnaissance automatique de coloration syntaxique et qui marche plutôt bien dans mon expérience. C'est ce que j'ai choisi pour mon “paste” à moi ( http://uu.zoy.org), si tu veux tester…
Merci j'irai regarder celui-là.
Finalement j'ai adopté highlight.js. Merci ! (c'est sur GitHub et ça sortira dans une prochaine release de ZeroBin.)
Salut!
Juste pour saluer cette mise à jour!
Ah, et une petite amélioration, juste pour le confort : Serait-ce possible que le lien du paste soit fourni dans un champ où l'url est pré-sélectionnée? (Un petit onFocus=“select();” j'imagine?) Histoire de pas avoir à sélectionner manuellement le lien avant de le copier…
Ah oui… tout simple et pratique. J'ajouterai ça.
Voilà c'est fait: C'est sur GitHub et sera intégré à la prochaine version de ZeroBin.
C'est en place aussi sur mon service: http://sebsauvage.net/paste/
Donc, il suffit de cliquer sur “Send” et faire CTRL+C. C'est plus rapide.
J'hésite à poster…allez tant pis.
[rien à voir] Perso j'ai pas 11 questions à te poser, seulement 1 : est-ce que tu te rends compte que même sans se connaitre on est susceptible de se “cotoyer” toute sa vie ? Perso ça fait pas très longtemps que je m'en suis vraiment rendu compte et c'est une impression bizarre dans la mesure où pour moi tu n'existes pas vraiment. T'es comme un tamagotchi en fait :) Culturellement c'est tout nouveau ces relations distante/intéractive et je crois que peu de monde s'en rend encore véritablement compte… [/rien à voir]
Je ne pense pas que quelqu'un l'ait déjà proposé (si c'est le cas, sorry) mais je trouve que “Burn after reading” devrait être une option à cocher au lieu d'une durée de temps alternative et ceci par mesure de sécurité.
Comme je n'ai aucun moyen de vérifier (parfois) que la personne a bien cliqué sur le lien qui lui était destiné (à part tenter de l'ouvrir moi même, mais alors j'invalide le lien pour le destinataire s'il ne l'avait pas encore lu),
Mais du coup, si c'est une information sensible j'ai intérêt qu'elle expire rapidement. Si jamais le destinataire n'ouvre jamais le lien (ce qui peut arriver) le lien est disponible à vie et quelqu'un arrivera peut-être à l'ouvrir un jour.
Tandis que si je peux dire que le past expire dans maximum une semaine (ou jamais) ou lorsqu'il est ouvert, je trouve ça beaucoup plus safe que d'avoir à vérifier manuellement que le message n'a pas été ouvert après X temps (ce qui est un peu une atteinte à la liberté individuelle même si mon intention est juste de le supprimer au cas où).
En espérant m'être bien fait compris et avoir bien souligné l'importance (selon moi) de la chose. Merci d'avance.
J'a bien compris le besoin, et ça se tient. Je note ça dans la liste des choses à faire.
En attendant, note qu'il y a désormais un lien pour supprimer un paste quand tu en créé un.
Voilà, c'est fait. “Burn after reading” est maintenant une checkbox à côté. Les sources sont sur GitHub et le tout sera intégré dans une prochaine version de ZeroBin. C'est également en place sur mon serveur (Maj+F5 pour forcer le rechargement de la page).
Super merci pour la vitesse de réaction :)
Hello again,
Attention en disant que les search engines n'executent pas de javascript, c'est de plus en plus faux (je sais que Google execute une partie du JS de mon site pro par exemple, parce qu'il déclenche des requêtes sur des urls qui ne peuvent pas être trouvées sans javascript).
Source: http://www.forbes.com/sites/velocity/2010/06/25/google-isnt-just-reading-your-links-its-now-running-your-code/
Bref. Beware :/
Oui j'ai vu.
Pour le moment ça peut aller, car:
Mais dans l'avenir, il n'est pas impossible que j'ai à implémenter des choses spécifiques pour les bloquer (blacklist d'IPs, blacklist de User-Agents ou captchas)
Un petite modif dans index.php pour supporter un reverse proxy :
On ajoute une fonction remote_address qui contient
{
}
Et on replace les $_SERVER[“REMOTE_ADDR”] par remote_address()
Effectivement, mais le soucis que je vois avec ça, c'est la possibilité de spammer un ZeroBin en insérant une entête HTTP_X_FORWARDED_FOR dans les requêtes. Ce patch ne devrait donc être mis en place que quand on l'installe derrière un reverse-proxy.
Merci de l'avoir signalé, cela re-servira à ceux qui voudront le faire.
Oups! On peut essayer de détecter le proxy qui retourne toujours le même $_SERVER[“REMOTE_ADDR”] : {
}
Hello, First of all, congratulations for doing such a great project. Second, I have a question, is there a way to create a post from a link? I mean I need something like an API, for example, just point the browser to ”…/index.php?text=sometext&expires=10min&burn=yes&discussion=no&color=no” and a post with the text “sometext” and the stated options will be created. I am asking this because I want to use ZeroBin in a project of mine, but I also want to create a small standalone application (.exe) that will sit in the tray and when you open it, I want it to be able to create a post on my site and give the end user the generated link… so, can it be done, and if so, could you please tell me how as I am farly new to PHP. Thanks.
Hi ChinaWhite, I think what you ask isn't very possible (or not easily feasible) because this is your browser that encrypt the message, so it's up to the browser to execute the javasript script. When you make the HTPP request, it only request the page with the form and the JavaScript scripts, then once you wrote it, it get encrypted and send to the server. So, yeah, maybe you could have an API but it would mean that you would probably have to encrypt it yourself (but maybe there is another way around that I don't think of). I hope my explanation helped a bit ;)
Thank you JeromeJ for your answer. I think I understand a little better now, what you say makes sense obviously… I guess I could add an invisible browser frame on the form, fill in the data in that and simulate what a user would do, but I'm not a fan of this kind of “hacks”, so if anybody has a different idea, it would be great.
Check out the send_comment function of the js code : https://github.com/sebsauvage/ZeroBin/blob/c6e98045aa833dff824f892eb3392744c03a59f7/js/zerobin.js#L283
Everything is done on the client, the server just stores encrypted blobs of data.
Basically, you have to send a JSON doc with the following content :
{
}
Thank you, but isn't this for discussions? I want to create a post, not a comment… PS: Sorry if I misunderstood.
Oh, and also, could somebody please tell me how to change this:(Tue Mar 05 2013 18:30:17 GMT+0200 (GTB Standard Time) - the date and time from discussions to something more like this (05.03.2013 18:30:17). Thanks.
I think that is just a matter of playing with the date function in PHP, find where it displays the date with this current format, then go look at the doc page for the date function to know all shortcuts. http://php.net/manual/en/function.date.php
Is it ok if I change $meta['postdate']=time(); in index.php or should I change/format it in the JavaScript?
It is the javascript which formats the date.
I haven't really studied ZeroBin's code and I initially thought it was formatted in PHP but I think it is actually formatted in the js.
On this line: https://github.com/sebsauvage/ZeroBin/blob/c6e98045aa833dff824f892eb3392744c03a59f7/js/zerobin.js#L243
I don't really know how to change the format in js but I'm sure you'll find the answer on internet or some kind of doc.
Salut Seb. Zerobin bug de mon coté avec firefox sous android. Il reste bloqué à 'sending paste (Pls move your mouse for more entropy)'.
Ça fonctionne correctement avec chrome. Testé sur un nexus 4.
Seb, tu déchires grave. Depuis le temps que j'attendais la coloration syntaxique… ÇA DÉPOTE GRAVE DU CASTOR PANDORIEN
Je viens de découvrir ce script, vraiment super !
J'ai néanmoins 2/3 remarques à faire qui pourraient l'améliorer pour pas grand chose : - la page de template commence directement par une balise html. Il n'y a pas de DOCTYPE déclaré, ce qui n'est pas valide. Pour rendre Zerobin valide W3C, il suffit de rajouter un DOCTYPE et un attribut “alt” aux images associées aux boutons Send, Clone etc. Ça n'est pas essentiel, mais ça ne modifie pas beaucoup de code non plus.
- Plus gênant : le CSS n'est pas génial sur les petites résolutions (comprendre quand la largeur est inférieure à la largeur de la barre de boutons). Les boutons sont coupés en deux et se superposent.
Enfin, deux petites suggestions pour les évolutions futures : - Pourquoi ne pas proposer une option “Zerobin privé” rajoutant une méthode d'authentification quelconque pour poster un pads. Cela permet de ne pas avoir un pastebin ouvert aux 4 vents (en revanche, pas d'authentification pour la lecture, il suffit d'avoir le hash et la clé). - Deuxième suggestion : le choix d'une clé. La clé est automatiquement générée dans le navigateur. Il faut alors envoyer le lien avec la clé à notre correspondant et cet envoi ne peut se faire que par un canal sécurisé, sinon ça ne sert à rien. En revanche, si on peut choisir notre clé de chiffrement, cela facilite la communication du lien car le mot de passe peut être connu d'avance par les participants.
Bon courage pour les futures versions !
Effectivement: manque de validation w3c et CSS qui passent mal sur mobile. Ce sont deux choses qui sont notés dans la liste des choses à faire: https://github.com/sebsauvage/ZeroBin/issues?state=open
Un pastebin où seul l'admin peut poster ? c'est une idée ! (En fait, un FAI professionnel m'a fait la demande, mais ils vont l'implémenter eux-même.) Je note ça dans la liste d'idées.
Pour le choix de la clé, c'est effectivement quelque chose à faire aussi ! J'ai ajouté tout ça sur GitHub: https://github.com/sebsauvage/ZeroBin/issues
J'ai modifié un peu le CSS (et le HTML) pour qu'il soit valide et pour l'adapter aux petites résolutions. C'est pas révolutionnaire, mais ça corrige notamment les problèmes d'espacement des boutons.
Je peux vous donner le code si vous voulez.
Pour les deux autres améliorations, je vais essayer de les développer sur mon Zerobin. De même, êtes-vous intéressé par le code que je pourrais écrire ou préférez-vous l'implémenter vous-même dans une future version ?
Salut,
J'ai une proposition de feature pour ZeroBin ^^
Ça serait bien de, par exemple, rajouter la supposée date d'expiration avant ou après la clé :) (donc après # et donc jamais envoyé au navigateur) Vu que la date d'expiration n'est de toutes façons pas un mystère (soit il est affiché dans combien de temps il expire soit si c'est un burn after reading), ça serait sympa qu'à l'ouverture d'un lien on sache si ça semble normal que ça soit expiré ou si ça semble anormal et que le réseau est peut-être corrompu ^^
Car si celui qui envoie le lien ne dit pas au destinataire la supposée date d'expiration et que le destinataire l'ouvre trop tard, il n'y a aucun moyen de savoir si c'est car il a été ouvert trop tard (donc pas de soucis) ou si le réseau est peut-être corrompu :O
Cordialement.
Très bonne proposition, ça reste dans l'idée de ZeroBin. +1, ce serait utile !
Bonne idée, ça serait sympa comme nouvelle feature :)
Bonjour SebSauvage, merci pour ton logiciel qui est presque parfait pour la raison suivante : C'est un logiciel de partage de texte (au sens large) on est bien d'accord ? si oui pourquoi ne pas ajouter par défaut à coté du bouton “send” l'option d'envoyer directement le lien par mail ? Qu'en penses tu ?
Bonjour j'ai vu que vous aviez le livre en pdf que je recherche c'est Enard parle leur de batailles de roi et d'éléphants; pouvez vous me l'evoyer? Merci pour votre réponse
Si ça c'est pas le WTF comment du jour…
Ma question va surement paraitre absurde, mais zerobin permettrait-il de créer une application dérivée telle qu'un tchat ?
Mmmmh, je ne sais pas … ce n'est peut-être pas le plus approprié :/
Peut-être Cryptocat plutôt ?
Hello, I would like to know how this project supports this claim on the main project page: “User data is protected even in case of server breach or seizure.”?
If the server is breached, what could possibly restrain an attacker in modifying the JavaScript - used to encrypt/decrypt on the client side - and simply add a piece of code which would send the supplied password back to the compromised server (using the DOM)?
I might be missing something, and to be honest, I didn't look at the code. Are you using the new Web Crypto API or something? I couldn't find anything in the doc.
Hello,
I would like to add generic username and password to keep random users from conveniently accessing our zerobin installation, so:
Your paste is https://zerobin.somewhere.com/?b7b7b65dc46b90e0#ak7AVFSLpsB1c
would become:
Your paste is https://username:password@zerobin.somewhere.com/?b7b7b65dc46b90e0#ak7AVFSLpsB1c
Is this possible, perhaps by editing var url in the file zerobin.js ?
Hi, seems like the answer was right in the FAQ but is conflicting with the claim.
The list of `benefits` of the main page claims User data is protected even in case of server breach or seizure.
However, we can read a conflicting statement in the `drawbacks` section of the same page, i.e., Users still have to trust the server regarding the respect of their privacy. ZeroBin won't protect the users against malicious servers. Also, the FAQ clearly state that ZeroBin cannot protect the user from a malicious server.
Since a breached server is clearly a malicious server, I strongly recommend removing this misleading claim and adding something corresponding to the `drawbacks` section, e.g., breach or seizure or the server can access user's data.
Since this is a serious issue, I've created a github ticket.
regards,
J'adore l'idée et l'initiative!
Je tombes souvent sur tes travaux, et je suis toujours agréablement surpris :)
Un Zerobin de plus: http://paste.tarnish.me :)
Bonne idée, ça serait sympa comme nouvelle feature :)
Bonjour merci pour ce superbe projet qui peut bien rendre des services. J'ai essayer d'installer zerobin sur mon serveur mais j'obtiens une cette erreur: ” Erreur http 500 ( internal server error ) : une situation inattendue s'est produite tandis que le serveur tentait de traiter la demande” ne sachant pas comment resoudre ce soucis je viens chercher de l'aide ici en esperant trouver une solution adequate merci d'avance pour vos propositions :)
Easy way to rename data directory?
I have found public service of ZeroBin here: http://www.zerobin.co/
any idea if you'll release the “admin post” feature? → https://github.com/sebsauvage/ZeroBin/issues/35
Waiting for that
Salut,
tout d'abord, bravo et merci pour ce petit bijoujou. J'écris pour signaler un petit problème avec (constaté avec la version 0.19) : après avoir fait un lien en “Burn after reading”, si jamais on utilise par la suite un client web n'ayant pas javascrit d'activé, lorsque l'on consulte le lien du paste, un message s'affiche en signalant qu'il faut activer javascript. Jusqu'ici tout va bien, mais si on active javascript puis recharge l'url, le paste n'est pas affiché car il a été détruit lors de la première tentative, et le message est alors perdu. Est-il possible de faire en sorte que le paste disparaisse uniquement via une validation du javascript ?
En dehors de ce problème, est-il possible d'utiliser un script pour vim/emacs type pastebin-vim ?
Salut, ce “problème” comme tu l'appelles est normal.
Il serait possible d'implémenter une confirmation par JavaScript mais ça serait fortement déconseillé. En effet, quelqu'un (un bot par exemple) pourrait très bien récupérer le message chiffré et tenter de le déchiffrer lui-même plus tard sans que personne ne remarque que cela a été fait : C'est contre le principe du “Burn after reading”, si quelqu'un l'a ouvert avant toi, tu dois le savoir !
Ceci dit, en y réfléchissant on pourrait implémenter un hack / une solution, qui consisterait à ne pas se rendre directement sur la page permettant de récupérer le message mais sur une page intermédiaire qui, elle, ferait une redirection JavaScript vers la bonne page. Cela permettrait que, si on a JavaScript désactivé (car on utilise NoScript par exemple) cela nous prévienne sans pour autant que cela invalide le paste.
On conserverait ainsi le but premier de “Burn after reading”, si quelqu'un se rend bel et bien sur la page du paste, c'est sûrement grâce au JavaScript (donc on ne risque plus de l'invalider accidentellement) mais si un bot s'y rend manuellement (sur la page donnant le paste, pas l'intermédiaire, celle là on s'en fout que le bot y passe limite), tu le saura.
(De plus, je trouve que de manière générale, à part le fait que ça rajoute une étape (lourde ?) ça permettrait de pouvoir partager des liens ZeroBin même sur les services connu pour aller zieuter la page automatiquement (comme Facebook ou un mauvais service qui s'amuserait à vérifier tout vos liens automatiquement)(sauf si évidemment, ils exécutent le JavaScript et vont voir où il ne devrait pas; c'est rarement le cas donc))
Cette page étant largement surchargée, merci d'utiliser GitHub pour signaler un problème ou proposer une évolution.
This page getting too large, please use GitHub to report an issue or propose an evolution.
https://github.com/sebsauvage/ZeroBin/issues