Décision de la Cour Européenne des Droits de l’Homme : les procès pour violation de Copyright contraires aux Droits de l’Homme

criminal_justice_jurisprudence

La Cour Européenne des Droits de l’Homme n’est pas un organisme à prendre à la légère : ses décisions deviennent partie intégrante de la constitution de quasiment tous les pays européens.

Autant dire que la dernière en date devrait faire sauter de joie de nombreux défenseurs pour le partage de la culture, puisque la Cour a déclaré que les procès pour violation de Copyright étaient contraires aux Droits de l’Homme, et qu’ils devaient remplir trois conditions pour être valides.

Car il est en effet possible de faire des exceptions aux Droits de l’Homme, mais 3 étapes doivent être scrupuleusement suivies :

  • Le verdict doit être une nécessité dans une société démocratique.
  • Il doit être prescrit dans la loi (ce qui est déjà le cas pour les violations de Copyright).
  • Il doit poursuivre un but légitime (les ayants droit argumenteront sur la nécessité de sauvegarder leurs revenus j’imagine).

Concrètement cela change quoi ? Cela change le fait qu’il va être bien difficile de continuer de faire des procès pour des téléchargements illégaux sans que les Droits de l’Homme soient respectés.

Il va falloir pour les ayants droit et les traqueurs de pirates (Hadopi si tu nous entends !) démontrer le caractère vital pour une société démocratique de la lutte contre les violations de Copyright au cas par cas pour que des poursuites puissent respecter les Droits de l’Homme européens.

Bonne chance les gars, vous allez vous amuser pour démontrer que le partage de fichiers MP3 est une absolue nécessité dans une société démocratique. C’est pas comme si ça faisait des années que la moitié des français piratent allègrement, je n’ai pas l’impression que notre démocratie se soit effondrée pour autant ^^

Quand on voit les projets de surveillance d’Internet et des internautes par la Hadopi, en toute objectivité qu’est-ce qui est le plus susceptible de menacer la démocratie ?

Source Fr (nikopik)
Source En

Deux chercheurs analysent les archives du web pour prédire les événements à venir

Looking through my crystal ball / katerha via Flickr CC Licence By

Peut-on prédire les événements du futur avec un bon algorithme et (beaucoup) d’analyse de données? C’est l’hypothèse testée par Eric Horvitz, chercheur chez Microsoft, et Kira Radinsky, qui travaille au Technion-Israel Institute de Haïfa, dans leur article «Mining the Web to Predict Future Events», explique le site Gigaom.

En compilant les données disponibles à un instant t, on devrait pouvoir générer des alertes concernant par exemple les maladies ou les manifestations à venir, pensent les auteurs. Les deux chercheurs ont donc expérimenté leur idée sur 22 années d’archives du New York Times, de 1986 à 2007, pour tester sa validité.

L’expérience consiste à observer si un certain type de menace survient dans le cadre d’une chaîne d’événements précise, par exemple en cherchant les mot-clé «malaria» ou «choléra». Or, en suivant les articles de presse sur les catastrophes naturelles comme les tempêtes ou les sécheresses, on aurait pu prévoir un an en amont une recrudescence du choléra en Angola, écrivent les deux chercheurs.

Autre exemple parlant dans le domaine du maintien de l’ordre, celui de la prédiction des manifestations et protestations. Plusieurs cas impliquant la mort d’un innocent par la police dans un quartier à forte population immigrée ont permis aux auteurs de relier certains événements (les funérailles, le procès des policiers, etc.) à des protestations ou émeutes.

Des exemples de chaînes d’événements identifiées par les auteurs.

Ces usages prédictifs de l’informatique se multiplient de par le monde. La start-up Recorded Future propose déjà un service de ce type à ses clients, parmi lesquels des agences gouvernementales américaines, écrit Technology Review.

Les policiers de Los Angeles utilisent eux un logiciel analysant les archives des actes de délinquance, qui leur indique les zones dans lesquelles patrouiller en priorité, avec un certain succès.

IBM a récemment annoncé que le style steam punk allait devenir une mode majeure des années à venir, en compilant des sources en ligne et notamment des discussions sur les réseaux socio-numériques. Et des chercheurs britanniques ont quant à eux créé un algorithme pour prédire où vous vous trouverez dans 24 heures… à l’aide des données de tracking (suivi géographique) de votre téléphone mobile. Leur marge d’erreur? Environ 20 mètres.

Twitter attaqué : fuite de données pour 250 000 comptes

medium-124495

Twitter vient d’annoncer qu’il avait été la cible d’une attaque ces derniers jours, menant à la fuite d’informations concernant 250 000 comptes d’utilisateurs. Par sécurité, les accès de ces derniers ont été réinitialisés, si vous êtes concernés, vous devriez recevoir un mail détaillant la procédure à suivre.

Bob Lord, qui travaille au sein de l’équipe dédiée à la sécurité de Twitter, vient de se fendre d’un billet sur le blog du service de micro-blogging. Il indique que ses collègues ont détecté des tentatives d’accès aux données utilisateurs cette semaine, dont une qu’ils ont pu interrompre en pleine exécution. Pour autant, une fuite d’information a été découverte.

 

Des pseudos, adresses e-mail, tokens de session et une version chiffrée (avec une composante aléatoire, le salt) du mot de passe ont été récupérés. Ainsi, le mot de passe lui-même ne devrait pas pouvoir être découvert par les attaquants, mais par sécurité Twitter a tout de même réinitialisé les données de connexion des 250 000 comptes concernés. Les utilisateurs touchés sont contactés par courriel afin de leur indiquer la procédure à suivre.

Selon l’équipe du site, ce n’était pas l’oeuvre d’amateurs, et ils pensent ne pas se trouver face à une tentative isolée, d’autres sociétés pourraient faire face à des attaques similaires. Les autorités compétentes ont été contactées afin de donner une suite à cette affaire.

 

Twitter en profite pour rappeler l’importance du choix d’un mot de passe fort (au moins 10 caractères, un mélange alphanumérique contenant des symboles et jouant sur les majuscules minuscules, même si cette définition ne fait pas consensus), qui ne soit pas le même pour l’ensemble des services que vous utilisez.

Des images de centaines de caméras privées visibles en direct sur le Net

article_trendnet

HIGH TECH – Une faille dans le système de sécurité des caméras de surveillance de la société Trendnet permet à n’importe qui d’espionner des personnes à leur insu, via les caméras connectées qu’elles ont installées chez elles…

Pourtant signalée par le blog Console Cowboys il y a un an, une énorme faille de sécurité menace toujours la vie privée des possesseurs de caméras de surveillance Trendnet. Au lieu de fonctionner en circuit privé, certaines d’entre elles diffusent les images qu’elles filment sur la Toile en temps réel. Plus grave encore, n’importe qui peut obtenir l’adresse informatique de ces caméras et ainsi espionner ceux qui sont filmés.  En résumé, si vous utilisez l’une de ces caméras pour surveiller votre domicile, votre voisin peut vous voir avachi le mardi soir devant «Nouvelle Star» ou  regarder votre bébé en train de dormir dans son berceau. Du pain béni, en passant, pour d’éventuels cambrioleurs.

Le site spécialisé The Verge a tiré une nouvelle fois la sonnette d’alarme cette semaine. Après le premier article publié sur Console Cowboys en 2012 pour signaler le problème, Trendnet avait proposé une mise à jour du logiciel et un correctif pour bloquer l’accès aux images. Mais des internautes ont constaté que des individus continuent à être filmés en permanence et à leur insu. Tout y passe: de la petite boutique d’électronique du coin à des employés de bureau, en passant par des personnes qui se baladent en peignoir chez elles. Le site spécialisé Génération-NT a publié une mosaïque de captures d’écran anonymisées.

Un compte Twitter diffuse les flux des caméras affectées pour «alerter» 

Pour avertir les internautes, Network World a publié une Google Map localisant une centaine de caméras  dans le monde – la France est loin d’être épargnée -. En cliquant sur un point donné, il est possible de voir les images correspondantes, filmées en temps réel.  Si Google a supprimé la carte mercredi parce qu’elle ne respectait pas les «droits relatifs à la vie privée et à l’image», le compte Twitter @TRENDnetExposed continue le travail. Des liens vers des caméras «piratées»  sont publiés chaque jour sur le site de micro-blogging. «Nous voulons alerter les gens sur ce problème. Nous continuerons à repérer et diffuser les caméras affectées», indique l’auteur du compte .

Mardi, Trendnet a réagi dans un communiqué. La société jure, comme il y a un an, de faire tout son possible pour réparer son erreur. Elle insiste sur le fait qu’elle a prévenu ses clients depuis. Sauf que de nombreux utilisateurs de ses caméras n’ont pas souhaité s’enregistrer avec leurs coordonnées au moment de l’achat et n’ont donc pas pu être contactés. Combien d’entre eux ignorent encore que leur vie privée ne l’est plus depuis longtemps?

 

15 fragments de code PHP très utile


 

 

1. Envoyer un email en utilisant la fonction mail de PHP

1
2
3
4
5
6
7
8
9
10
11
<?php
$to = "yourmail@gmail.com";
$subject = "atmoner.com";
$body = "Body of your message here you can use HTML too. e.g. <br> <b> Bold </b>";
$headers = "From: Peter\r\n";
$headers .= "Reply-To: info@yoursite.com\r\n";
$headers .= "Return-Path: info@yoursite.com\r\n";
$headers .= "X-Mailer: PHP5\n";
$headers .= 'MIME-Version: 1.0' . "\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
mail($to,$subject,$body,$headers);

2. Coder et décoder Base64 les chaînes en PHP

1
2
3
4
5
6
7
8
9
10
11
function base64url_encode($plainText) {
    $base64 = base64_encode($plainText);
    $base64url = strtr($base64, '+/=', '-_,');
    return $base64url;
}
 
function base64url_decode($plainText) {
    $base64url = strtr($plainText, '-_,', '+/=');
    $base64 = base64_decode($base64url);
    return $base64;
}

3. Récuperer l’adresse IP en PHP

1
2
3
4
function getRemoteIPAddress() {
    $ip = $_SERVER['REMOTE_ADDR'];
    return $ip;
}

Le code ci-dessus ne fonctionne pas dans le cas où votre client est derrière un serveur proxy. Dans ce cas, utilisez la fonction ci-dessous pour obtenir l’adresse IP réelle du client.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function getRealIPAddr()
{
    if (!empty($_SERVER['HTTP_CLIENT_IP']))   //check ip from share internet
    {
        $ip=$_SERVER['HTTP_CLIENT_IP'];
    }
    elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR']))   //to check ip is pass from proxy
    {
        $ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
    }
    else
    {
        $ip=$_SERVER['REMOTE_ADDR'];
    }
    return $ip;
}

4. Secondes string

1
2
3
4
5
6
7
function secsToStr($secs) {
    if($secs>=86400){$days=floor($secs/86400);$secs=$secs%86400;$r=$days.' day';if($days<>1){$r.='s';}if($secs>0){$r.=', ';}}
    if($secs>=3600){$hours=floor($secs/3600);$secs=$secs%3600;$r.=$hours.' hour';if($hours<>1){$r.='s';}if($secs>0){$r.=', ';}}
    if($secs>=60){$minutes=floor($secs/60);$secs=$secs%60;$r.=$minutes.' minute';if($minutes<>1){$r.='s';}if($secs>0){$r.=', ';}}
    $r.=$secs.' second';if($secs<>1){$r.='s';}
    return $r;
}

5. Email validation en PHP

1
2
3
4
5
6
$email = $_POST['email'];
if(preg_match("~([a-zA-Z0-9!#$%&amp;'*+-/=?^_`{|}~])@([a-zA-Z0-9-]).([a-zA-Z0-9]{2,4})~",$email)) {
    echo 'This is a valid email.';
} else{
    echo 'This is an invalid email.';
}

6. Analyser un document XML de manière simple en utilisant PHP

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
//this is a sample xml string
$xml_string="<?xml version='1.0'?>
<moleculedb>
    <molecule name='Benzine'>
        <symbol>ben</symbol>
        <code>A</code>
    </molecule>
    <molecule name='Water'>
        <symbol>h2o</symbol>
        <code>K</code>
    </molecule>
</moleculedb>";
 
//load the xml string using simplexml function
$xml = simplexml_load_string($xml_string);
 
//loop through the each node of molecule
foreach ($xml->molecule as $record)
{
   //attribute are accessted by
   echo $record['name'], '  ';
   //node are accessted by -> operator
   echo $record->symbol, '  ';
   echo $record->code, '<br />';
}

7. Connexion base de données en PHP

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?php
if(basename(__FILE__) == basename($_SERVER['PHP_SELF'])) send_404();
$dbHost = "localhost";        //Location Of Database usually its localhost
$dbUser = "xxxx";            //Database User Name
$dbPass = "xxxx";            //Database Password
$dbDatabase = "xxxx";       //Database Name
 
$db = mysql_connect("$dbHost", "$dbUser", "$dbPass") or die ("Error connecting to database.");
mysql_select_db("$dbDatabase", $db) or die ("Couldn't select the database.");
 
# This function will send an imitation 404 page if the user
# types in this files filename into the address bar.
# only files connecting with in the same directory as this
# file will be able to use it as well.
function send_404()
{
    header('HTTP/1.x 404 Not Found');
    print '<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">'."n".
    '<html><head>'."n".
    '<title>404 Not Found</title>'."n".
    '</head><body>'."n".
    '<h1>Not Found</h1>'."n".
    '<p>The requested URL '.
    str_replace(strstr($_SERVER['REQUEST_URI'], '?'), '', $_SERVER['REQUEST_URI']).
    ' was not found on this server.</p>'."n".
    '</body></html>'."n";
    exit;
}
 
# In any file you want to connect to the database,
# and in this case we will name this file db.php
# just add this line of php code (without the pound sign):
# include"db.php";

8. Création et analyse des données JSON en PHP

1
2
$json_data = array ('id'=>1,'name'=>"rolf",'country'=>'russia',"office"=>array("google","oracle"));
echo json_encode($json_data);

Après code analyser les données JSON dans des tableaux PHP.

1
2
3
4
5
$json_string='{"id":1,"name":"rolf","country":"russia","office":["google","oracle"]} ';
$obj=json_decode($json_string);
//print the parsed data
echo $obj->name; //displays rolf
echo $obj->office[0]; //displays google

9. Processus de MySQL en PHP Timestamp

1
2
3
4
5
6
$query = "select UNIX_TIMESTAMP(date_field) as mydate from mytable where 1=1";
$records = mysql_query($query) or die(mysql_error());
while($row = mysql_fetch_array($records))
{
    echo $row;
}

10. Générer un code d’authentification en PHP

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# This particular code will generate a random string
# that is 25 charicters long 25 comes from the number
# that is in the for loop
$string = "abcdefghijklmnopqrstuvwxyz0123456789";
for($i=0;$i<25;$i++){
    $pos = rand(0,36);
    $str .= $string{$pos};
}
echo $str;
# If you have a database you can save the string in
# there, and send the user an email with the code in
# it they then can click a link or copy the code
# and you can then verify that that is the correct email
# or verify what ever you want to verify

11. Validation format de date en PHP

Validation de la date au format “YYYY-MM-DD”.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
function checkDateFormat($date)
{
    //match the format of the date
    if (preg_match ("/^([0-9]{4})-([0-9]{2})-([0-9]{2})$/", $date, $parts))
    {
        //check weather the date is valid of not
        if(checkdate($parts[2],$parts[3],$parts[1]))
            return true;
        else
        return false;
    }
    else
        return false;
}

12. HTTP Redirection en PHP

1
    header('Location: http://you_stuff/url.php'); // stick your url here

13. Liste du répertoire en PHP

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
function list_files($dir)
{
    if(is_dir($dir))
    {
        if($handle = opendir($dir))
        {
            while(($file = readdir($handle)) !== false)
            {
                if($file != "." &amp;&amp; $file != ".." &amp;&amp; $file != "Thumbs.db"/*pesky windows, images..*/)
                {
                    echo '<a target="_blank" href="'.$dir.$file.'">'.$file.'</a><br>'."\n";
                }
            }
            closedir($handle);
        }
    }
}
 
/*
To use:
 
<?php
    list_files("images/");
?>
*/

14. Script de détection du navigateur en PHP

1
2
    $useragent = $_SERVER ['HTTP_USER_AGENT'];
    echo "<b>Your User Agent is</b>: " . $useragent;

15. Décompresser un fichier ZIP en PHP

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
     function unzip($location,$newLocation){
        if(exec("unzip $location",$arr)){
            mkdir($newLocation);
            for($i = 1;$i< count($arr);$i++){
                $file = trim(preg_replace("~inflating: ~","",$arr[$i]));
                copy($location.'/'.$file,$newLocation.'/'.$file);
                unlink($location.'/'.$file);
            }
            return TRUE;
        }else{
            return FALSE;
        }
    }
?>
//Use the code as following:
<?php
include 'functions.php';
if(unzip('zipedfiles/test.zip','unziped/myNewZip'))
    echo 'Success!';
else
    echo 'Error';