IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SQLite Discussion :

SQLite 3.37 est disponible, le moteur de base de données léger apporte le mode STRICT tant attendu


Sujet :

SQLite

  1. #1
    Chroniqueur Actualités
    Avatar de Bruno
    Homme Profil pro
    Rédacteur technique
    Inscrit en
    mai 2019
    Messages
    1 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Rédacteur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : mai 2019
    Messages : 1 130
    Points : 22 842
    Points
    22 842
    Par défaut SQLite 3.37 est disponible, le moteur de base de données léger apporte le mode STRICT tant attendu
    SQLite 3.37 est disponible, le moteur de base de données léger apporte le mode STRICT tant attendu,
    une amélioration de l'interface CLI et plus

    L'équipe de développement de SQLite a annoncé le 27 novembre la sortie de la version 3.37 de SQLite. Cette version apporte le mode STRICT qui est activé séparément pour chaque table d’une base de données. « Certains développeurs apprécient la liberté qu'offrent les règles de typage flexibles de SQLite et utilisent cette liberté à leur avantage. Mais d'autres développeurs sont choqués par le non-respect flagrant des règles par SQLite et préfèrent le système de typage rigide traditionnel que l'on trouve dans tous les autres moteurs de base de données SQL et dans le standard SQL. Pour ce dernier groupe, la version 3.37 de SQLite supporte un mode de typage STRICT qui est activé séparément pour chaque table », a déclaré l'équipe de développement de SQLite.

    Rappelons que SQLite est un moteur de base de données relationnelle léger accessible par le langage SQL. Contrairement aux serveurs de bases de données traditionnels, comme MySQL ou PostgreSQL, sa particularité est de ne pas reproduire le schéma habituel client-serveur, mais d'être directement intégrée aux programmes. L'intégralité de la base de données (déclarations, tables, index et données) est en effet stockée dans un fichier indépendant de la plateforme. Grâce à son extrême légèreté, SQLite est l’un des moteurs de base de données les plus utilisés au monde. Il est utilisé dans de nombreux logiciels grand public, et est également très populaire sur les systèmes embarqués, notamment sur la plupart des smartphones modernes.

    Nom : sqlite.jpg
Affichages : 45450
Taille : 6,5 Ko

    Table STRICT

    SQLite s'efforce d'être flexible en ce qui concerne les types de données du contenu qu'il stocke. Par exemple, si une colonne de la table a pour type "INTEGER", SQLite essaie de convertir tout ce qui est inséré dans cette colonne en un nombre entier. Ainsi, une tentative d'insertion de la chaîne '123' se traduit par l'insertion d'un nombre entier 123. Mais si le contenu ne peut pas être converti sans perte en un nombre entier, par exemple si l'entrée est 'xyz', alors la chaîne originale est insérée à la place.

    Certains développeurs apprécient la liberté qu'offrent les règles de typage flexibles de SQLite et utilisent cette liberté à leur avantage. Mais d'autres développeurs sont choqués par le non-respect flagrant des règles par SQLite et préfèrent le système de type rigide traditionnel que l'on trouve dans tous les autres moteurs de base de données SQL et dans le standard SQL. Pour ce dernier groupe, SQLite supporte un mode de typage strict, à partir de la version 3.37.0, mode qui est activé séparément pour chaque table.

    Dans une instruction CREATE TABLE, si le mot-clef "STRICT" est ajouté à la fin, après le ")" de fermeture, les règles de saisie stricte s'appliquent à cette table. Le mot-clef STRICT entraîne les différences suivantes :
    1. chaque définition de colonne doit spécifier un type de données pour cette colonne, la liberté de spécifier une colonne sans type de données est supprimée ;
    2. le type de données doit être l'un des types suivants.

    • INT
    • INTEGER
    • REAL
    • TEXT
    • BLOB
    • ANY

    Le contenu inséré dans la colonne avec un type de données autre que ANY doit être soit un NULL (en supposant qu'il n'y a pas de contrainte NOT NULL sur la colonne) ou le type spécifié. SQLite tente de contraindre les données dans le type approprié en utilisant les règles d'affinité habituelles, comme le font PostgreSQL, MySQL, SQL Server et Oracle. Si la valeur ne peut pas être convertie sans perte dans le type de données spécifié, alors une erreur SQLITE_CONSTRAINT_DATATYPE est levée.

    Les colonnes avec le type de données ANY peuvent accepter n'importe quel type de données (sauf qu'elles rejetteront les valeurs NULL si elles ont une contrainte NOT NULL, bien sûr). Aucune coercition de type ne se produit pour une colonne de type ANY dans une table STRICT. Les colonnes qui font partie de la CLEF PRIMAIRE sont implicitement NOT NULL. Cependant, même si la PRIMARY KEY a une contrainte NOT NULL implicite, lorsqu'une valeur NULL est insérée dans une colonne INTEGER PRIMARY KEY, la valeur NULL est automatiquement convertie en un entier unique, en utilisant les mêmes règles que pour INTEGER PRIMARY KEY sur les tables ordinaires, non strictes. Les commandes PRAGMA integrity_check et PRAGMA quick_check vérifient le type du contenu de toutes les colonnes des tables STRICT et affichent des erreurs si quelque chose ne va pas. Toutes les autres fonctions d'une table STRICT sont identiques à celles d'une table ordinaire non stricte.

    Le type de données ANY

    La possibilité d'héberger tout type de données dans une seule colonne s'est avérée remarquablement utile au fil des ans. Afin de continuer à soutenir cette capacité, même dans les tables STRICT, le nouveau nom de type de données ANY est introduit. Lorsque le type de données d'une colonne est "ANY", cela signifie que n'importe quel type de données - entiers, valeurs à virgule flottante, chaînes de caractères ou blobs binaires - peut être inséré dans cette table et sa valeur et son type de données seront préservés exactement comme il a été inséré. Pour autant que nous le sachions, SQLite est le seul moteur de base de données SQL qui supporte cette capacité avancée.

    Le comportement de ANY est légèrement différent dans une table STRICT par rapport à une table ordinaire non stricte. Dans une table STRICT, une colonne de type ANY préserve toujours les données exactement comme elles sont reçues. Dans une table ordinaire non stricte, une colonne de type ANY tentera de convertir les chaînes qui ressemblent à des nombres en une valeur numérique et, si elle y parvient, stockera la valeur numérique plutôt que la chaîne d'origine.

    Pour certains analystes, le prochain projet de l'équipe de développement de SQLite devrait être l’ajout de l’instruction CREATE DOMAIN qui permet de définir un alias de type personnalisé. Notons qu’un domaine SQL est un ensemble nommé de valeurs valides défini par l'utilisateur. Les domaines dépendent d'un certain schéma. Le domaine doit être unique au sein du schéma auquel il appartient (il ne peut pas non plus être identique à tout dans son schéma). Les domaines sont créés, modifiés et supprimés à l'aide d'instructions SQL standard. Les objets qui peuvent appartenir à un domaine sont connus sous le nom de contraintes de domaine et ils dépendent d'un certain domaine.

    Pour créer un domaine, l’instruction CREATE DOMAIN est utilisée. Cette instruction crée un nouveau domaine. Un domaine est essentiellement un type de données avec des contraintes optionnelles (restrictions sur l'ensemble de valeurs autorisées). L'utilisateur qui définit un domaine devient son propriétaire. Si un nom de schéma est donné (par exemple, CREATE DOMAIN monschema.mondomaine ...), alors le domaine est créé dans le schéma spécifié. Sinon, il est créé dans le schéma courant. Le nom du domaine doit être unique parmi les types et domaines existant dans son schéma.

    Les domaines permettent d'extraire des contraintes communes à plusieurs tables et de les regrouper en un seul emplacement, ce qui en facilite la maintenance. Par exemple, plusieurs tables pourraient contenir des colonnes d'adresses email, toutes nécessitant la même contrainte de vérification (CHECK) permettant de vérifier que le contenu de la colonne est bien une adresse email. Définissez un domaine plutôt que de configurer la contrainte individuellement sur chaque table.

    CREATE DOMAIN spécifie le schéma englobant, nomme le domaine et identifie l'ensemble des valeurs valides du domaine. Pour modifier un domaine existant, l'instruction ALTER DOMAIN est utilisée et DROP DOMAIN est utilisée pour détruire un domaine. Sans CREATE DOMAIN, les tables STRICT ne savent pas quel type de base utiliser pour un nom de type inconnu. Ils pourraient utiliser quelque chose comme « les types inconnus sont équivalents à ANY » mais cela signifierait qu'ils ne pourraient pas implémenter CREATE DOMAIN à l'avenir sans rompre la compatibilité ascendante.

    PostgreSQL serait le seul moteur de base de données relationnelle majeure à implémenter CREATE DOMAIN, bien qu'il y ait quelques SGBDR plus qui le supportent aussi (comme Firebird, Interbase, Sybase/SAP SQL). L'équipe de développement de SQLite n'a pas indiqué qu'elle prévoyait de travailler sur CREATE DOMAIN. Cependant, même si certains développeurs apprécient la liberté qu'offrent les règles de typage flexibles de SQLite et utilisent cette liberté à leur avantage, d'autres par contre sont choqués par le non-respect flagrant des règles par SQLite et préfèrent le système de type rigide traditionnel que l'on trouve dans tous les autres moteurs de base de données SQL.

    « Je pense que c'est le genre de fonctionnalité susceptible de les séduire, elle devrait être relativement simple à mettre en œuvre (surtout s'ils ne mettent pas en œuvre ALTER DOMAIN, seulement CREATE et DROP), mais fournir beaucoup de puissance en échange. », déclare un développeur.

    Améliorations de l'interface CLI

    Le projet SQLite fournit un programme de ligne de commande simple nommé sqlite3 (ou sqlite3.exe sous Windows) qui permet à l'utilisateur de saisir et d'exécuter manuellement des instructions SQL contre une base de données SQLite ou contre une archive ZIP. Ce document fournit une brève introduction sur la façon d'utiliser le programme sqlite3. Par exemple, pour créer une nouvelle base de données SQLite nommée ex1 avec une seule table nommée tbl1, vous pouvez procéder comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $ sqlite3 ex1
    SQLite version 3.36.0 2021-06-18 18:36:39
    Enter ".help" for usage hints.
    sqlite> create table tbl1(one varchar(10), two smallint);
    sqlite> insert into tbl1 values('hello!',10);
    sqlite> insert into tbl1 values('goodbye', 20);
    sqlite> select * from tbl1;
    hello!|10
    goodbye|20
    sqlite>

    Voici, ci-dessous, quelques améliorations et ajouts qu’apporte la version 3.37 de SQLite à l'interface CLI :

    • amélioration des performances lors de la lecture des instructions SQL qui s'étendent sur plusieurs lignes ;
    • ajout de la commande .connection, qui permet à l'interface CLI de maintenir plusieurs connexions de base de données ouvertes en même temps ;
    • ajout de l'option de ligne de commande --safe qui désactive les commandes point et les instructions SQL susceptibles de provoquer des effets secondaires allant au-delà du fichier de base de données unique nommé sur la ligne de commande.

    Source : SQLite

    Et vous ?

    Que pensez-vous de SQLite ? L'utilisez-vous ?

    Quel est votre avis sur le mode STRICT tant attendu ?

    Voir aussi :

    SQLite 3.25 est disponible, le moteur de base de données léger, apporte le support des fonctions Window, un meilleur optimiseur de requêtes et plus

    SQLite 3.33.0 est disponible avec la prise en charge de « UPDATE FROM » suivant la syntaxe de PostgreSQL, améliore l'extension ieee754 pour la prise en charge des numéros binary64 de l'IEEE 754

    DuckDB, une base de données SQL intégrable comme SQLite, supporte les fonctionnalités de PostgreSQL, conçu pour le traitement et le stockage d'ensembles de données tabulaires

    SQLite 3.35 est disponible et prend en charge pour la première fois des fonctions mathématiques et ajoute aussi le support pour la commande "ALTER TABLE DROP COLUMN"
    Contribuez au club : corrections, suggestions, critiques, ... Contactez le service news et Rédigez des actualités

  2. #2
    Membre extrêmement actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    octobre 2017
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : octobre 2017
    Messages : 1 327
    Points : 4 587
    Points
    4 587
    Par défaut
    Citation Envoyé par Bruno;11788289[SUB
    ][B]...SQLite est l’un des moteurs de base de données les plus utilisé au monde. Il est utilisé dans de nombreux logiciels grand public, et est également très populaire sur les systèmes embarqués, notamment sur la plupart des smartphones modernes.
    Oui SQLite est très utile pour des app embarquées...

    Mais oui, il y a un gros problème pour un système embarqué: Les données ne sont pas protégées et sont lisibles en clair dans les fichiers où sont archivées les données!


    Tu veux sécuriser tes données? Ben tu passes à la caisse auprès de sociétés qui ont bricolé SQLite pour fournir contre argent sonnant et trébuchant une version qui permet de crypter les données...

    Mais les données ne sont cryptées dans une base de données me direz-vous... Ouais mais quand tu as une base de données, cette dernière est au moins protégée par des mots-de-passe et est installée sur un serveur qui est hors d'accès de l'utilisateur final!

    Dans le cas de SQLite, tu ouvres un fichier texte et tu accèdes en clair à toutes les données...

  3. #3
    Membre chevronné
    Homme Profil pro
    Ingénieur en génie logiciel
    Inscrit en
    juin 2012
    Messages
    729
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur en génie logiciel
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : juin 2012
    Messages : 729
    Points : 2 047
    Points
    2 047
    Par défaut
    Suffit de chiffrer tes données avant de les insérer

  4. #4
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique
    Inscrit en
    janvier 2007
    Messages
    14 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : janvier 2007
    Messages : 14 100
    Points : 38 179
    Points
    38 179
    Billets dans le blog
    59
    Par défaut
    Je suis pour le STRICT même si, AMHA, une déclaration à la colonne eut été mieux qu'à la table.
    PostgreSQL serait le seul moteur de base de données relationnelles majeure à implémenter CREATE DOMAIN, bien qu'il y ait quelques SGBDR plus qui le supportent aussi
    Cette histoire de DOMAIN je l'utilise beaucoup dans les bases Firebird et ce depuis longtemps je ne comprends pas cette phrase. Serait-ce un atout majour dans SQLite peut-être, si le STRICT pouvait s'appliquer

    Citation Envoyé par Anselme45 Voir le message
    Mais oui, il y a un gros problème pour un système embarqué: Les données ne sont pas protégées et sont lisibles en clair dans les fichiers où sont archivées les données!
    tu passes à la caisse auprès de sociétés qui ont bricolé SQLite pour fournir contre argent sonnant et trébuchant une version qui permet de crypter les données...
    Je suis assez d'accord avec ces phrases et, si j'ai bien compris
    Citation Envoyé par https://blogs.embarcadero.com/new-firedac-driver-for-sqlite-see/
    La version de liaison statique du pilote FireDAC SQLite offre une prise en charge du chiffrement de la base de données, en utilisant un mécanisme de hook de base de données (SQLITE_HAS_CODEC) qui a maintenant été supprimé
    AMHA on a même là un abus commercial !

    Citation Envoyé par Anselme45 Voir le message
    Mais les données ne sont cryptées dans une base de données me direz-vous.
    Là, non. Certains SGBD pouvant être embarqués (en sus du couple user/mdp) fournissent des mécanismes de chiffrement par colonne (i.e* IBToGo mais pas IBLite) ou base entière (i.e* Firebird)
    * je ne donne en exemple que celle que je maitrise, je suis sûr que MS SQLServer le propose quoique, en version Lite, j'ai un doute

    Citation Envoyé par marc.collin
    suffit de chiffrer tes données avant de les insérer
    Tout à fait exact, même si chiffrer avant d'insérer implique déchiffrer à la lecture
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Tokyo, Rio, Sidney) ,D11 (Alexandria)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs Etats : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Ubuntu, Androïd

  5. #5
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    août 2003
    Messages
    6 641
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : août 2003
    Messages : 6 641
    Points : 19 934
    Points
    19 934
    Par défaut
    Citation Envoyé par Anselme45 Voir le message
    Tu veux sécuriser tes données? Ben tu passes à la caisse auprès de sociétés qui ont bricolé SQLite pour fournir contre argent sonnant et trébuchant une version qui permet de crypter les données...
    Sqlite propose une extension permettant de chiffrer les données oui c'est payant , mais c'est complètement transparent et bien plus simple à utiliser que les solutions proposées par certains gros SGBD. Et pour le coup c'est pas très cher , un truc comme 2000$ pour une licence perpétuelle de mémoire.
    Quand on développe un applicatif qui à des besoins de sécurité nécessitant ce genre d'outil le coût est très souvent négligeable et comme la licence est perpetuelle elle se rentabilise sur le temps. Chez nous ca fait 10 ans qu'on l'utilise dans tous nos projets et c'est toujours compatible de version en version.
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    juin 2003
    Messages
    5 745
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : juin 2003
    Messages : 5 745
    Points : 10 630
    Points
    10 630
    Billets dans le blog
    3
    Par défaut
    Citation Envoyé par Anselme45 Voir le message
    Ouais mais quand tu as une base de données, cette dernière est au moins protégée par des mots-de-passe et est installée sur un serveur qui est hors d'accès de l'utilisateur final!
    Le SGBD peut très bien être installé sur ton poste pour tourner en local, auquel cas l'utilisateur aura accès en lecture à ses fichiers. Y'a un certains nombres d'applis qui font cela. Et c'est exactement le use case de SQLite.

    C'est pour ça que c'est très bizarre de critiquer cet aspect de cette techno dans la mesure où c'est précisément sa raison d'être, et son succès dans l'embarqué. C'est comme regretter qu'un disque dur local ne permette pas de stocker ses données sur le Cloud.


    En tous cas c'est une très bonne nouvelle ce mode STRICT, c'est en effet très surprenant de découvrir comment le typage sous SQLite est une notion assez flexible dirons-nous.

  7. #7
    Membre extrêmement actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    octobre 2017
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : octobre 2017
    Messages : 1 327
    Points : 4 587
    Points
    4 587
    Par défaut
    Citation Envoyé par marc.collin Voir le message
    suffit de chiffrer tes données avant de les insérer
    Et comment tu fais quand tu désires faire des recherches complexes sur plusieurs tables? Tu "cryptes" tes requêtes?

    Le but de SQLite est de disposer d'une base de données LEGERE, spécialement utile pour une app mobile.

    Si il faut monter une usine à gaz pour profiter de la fonction la plus simple d'une base de données, la recherche, SQLite n'est plus une solution pour une base de données légère!

    CQFD

  8. #8
    Membre extrêmement actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    octobre 2017
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : octobre 2017
    Messages : 1 327
    Points : 4 587
    Points
    4 587
    Par défaut
    Citation Envoyé par Aurelien.Regat-Barrel Voir le message
    Le SGBD peut très bien être installé sur ton poste pour tourner en local, auquel cas l'utilisateur aura accès en lecture à ses fichiers. Y'a un certains nombres d'applis qui font cela. Et c'est exactement le use case de SQLite.
    Qu'est-ce que cela veut dire "tourner en local"? Est-ce que tu connais encore des appareils qui fonctionnent sans un accès externe (internet, bluetooth et autre)?

    Ce n'est pas parce qu'un utilisateur utilise une app sur son appareil qu'il ne peut pas subir une visite peu amicale! As-tu déjà entendu parler des cyber-attaques?

    En l'état, tout le monde ne développe pas des applications qui comptabilisent des carottes. Quand ton app traite des données délicates, il ne faut pas qu'elles soient lisibles en clair dans un simple fichier texte!

  9. #9
    Membre extrêmement actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    octobre 2017
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : octobre 2017
    Messages : 1 327
    Points : 4 587
    Points
    4 587
    Par défaut
    Citation Envoyé par grunk Voir le message
    Sqlite propose une extension permettant de chiffrer les données oui c'est payant , mais c'est complètement transparent et bien plus simple à utiliser que les solutions proposées par certains gros SGBD. Et pour le coup c'est pas très cher , un truc comme 2000$ pour une licence perpétuelle de mémoire.
    Quand on développe un applicatif qui à des besoins de sécurité nécessitant ce genre d'outil le coût est très souvent négligeable et comme la licence est perpetuelle elle se rentabilise sur le temps. Chez nous ca fait 10 ans qu'on l'utilise dans tous nos projets et c'est toujours compatible de version en version.

    Ou comment faire croire que SQLite est une solution gratuite, tout en faisant passer à la caisse le développeur!

    C'est justement tout le problème de l'approche: D'un côté SQLite se présente comme la solution idéale, légère, gratuite, sympa et quand tu veux faire un vrai projet: 2 000$!

    Il serait plus "fair play" de dire, comme c'est le cas pour de nombreuses solutions, tu as une version limitée gratos et la vraie version est payante.

  10. #10
    Membre confirmé
    Homme Profil pro
    Inscrit en
    septembre 2011
    Messages
    118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : septembre 2011
    Messages : 118
    Points : 534
    Points
    534
    Par défaut
    La version gratuite suffit à l'immense majorité des usages, libre à toi d'implémenter les quelques fonctions qu'ils te manquent. Et bon 2000$ pour une licence perpétuelle c'est dérisoire...

  11. #11
    Membre émérite
    Inscrit en
    janvier 2006
    Messages
    701
    Détails du profil
    Informations forums :
    Inscription : janvier 2006
    Messages : 701
    Points : 2 585
    Points
    2 585
    Par défaut
    Citation Envoyé par Anselme45 Voir le message
    Qu'est-ce que cela veut dire "tourner en local"? Est-ce que tu connais encore des appareils qui fonctionnent sans un accès externe (internet, bluetooth et autre)?
    Misère

    Bon en cherchant bien il y a bien l'ordinateur de bord de ma voiture qui n'est pas (encore) connecté à internet, et qui doit bien avoir quelque chose d'embarqué, ne serait-ce que le disque de l'autoradio.
    Le jour où la voiture sera aura besoin d'être connectée à internet pour démarrer je commencerai à m'inquiéter d'avantage de savoir si elle n'envoie que des données légitimes que de savoir si le disque dur est crypté (ne serait-ce que pour pouvoir vérifier moi-même qu'il ne contient pas des données sur tous mes déplacements)
    Et si les fichiers de l'autoradio sont cryptés alors j'essaierai de fonctionner en mode déconnecté ne serait-ce que pour vérifier qu'il n'en profite pas pour essayer de couper les DRM...

  12. #12
    Membre extrêmement actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    octobre 2017
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : octobre 2017
    Messages : 1 327
    Points : 4 587
    Points
    4 587
    Par défaut
    Tu aurais gagné à te taire! A moins que ta voiture soit une 4L avec un auto-radio de 1980, ton ordinateur de bord est accessible depuis l'extérieur au minimum via bluetooth!

    1. Plusieurs spécialistes en sécurité informatique ont prouvé qu'il était possible de prendre le contrôle de certains véhicules modernes en agissant à distance sur les fonctions clé du véhicule: le moteur, le système de freinage, etc...


    2. Les médias viennent juste d'annoncer que des centaines d'utilisateurs n'avaient plus pu accéder à leur Tesla et démarrer à cause de problèmes réseau!

  13. #13
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    juin 2003
    Messages
    5 745
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : juin 2003
    Messages : 5 745
    Points : 10 630
    Points
    10 630
    Billets dans le blog
    3
    Par défaut
    Citation Envoyé par Anselme45 Voir le message
    Qu'est-ce que cela veut dire "tourner en local"? Est-ce que tu connais encore des appareils qui fonctionnent sans un accès externe (internet, bluetooth et autre)?

    Ce n'est pas parce qu'un utilisateur utilise une app sur son appareil qu'il ne peut pas subir une visite peu amicale! As-tu déjà entendu parler des cyber-attaques?

    En l'état, tout le monde ne développe pas des applications qui comptabilisent des carottes. Quand ton app traite des données délicates, il ne faut pas qu'elles soient lisibles en clair dans un simple fichier texte!
    Eh beh, tu es bien excité toi. Tu viens ici pour t'informer ou te défouler ?

    Toujours est-il qu'une bdd hébergée sur un réseau n'est pas du tout protégée contre les cyber attaques, c'est même une cause majeure de fuites massives de données depuis... longtemps. Il suffit de regarder l'évolution du top 10 de l'OWASP pour constater que le Cloud a agravé le problème. A l'inverse une partition sur un système embarqué (type ESP32 ou vrai PC) peut être encryptée de façon simple et robuste. Le fichier SQLite ne sera donc pas lisible en clair pour reprendre ton expression.

    Quant au fait d'être connecté en permanence à une BDD via le net, il suffit de regarder l'histoire de la création de SQLite pour comprendre comment ce n'est pas envisageable pour beaucoup de systèmes qui ont pourtant accès au réseau. Et les gadgets IoT modernes sont certes connectés à un réseau mais via des protocoles très light (MQTT...) qui permettent de remonter des métriques mais pas de faire des query lourdes à un SGBD.

  14. #14
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    août 2003
    Messages
    6 641
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : août 2003
    Messages : 6 641
    Points : 19 934
    Points
    19 934
    Par défaut
    Citation Envoyé par Anselme45 Voir le message
    Ou comment faire croire que SQLite est une solution gratuite, tout en faisant passer à la caisse le développeur!

    C'est justement tout le problème de l'approche: D'un côté SQLite se présente comme la solution idéale, légère, gratuite, sympa et quand tu veux faire un vrai projet: 2 000$!

    Il serait plus "fair play" de dire, comme c'est le cas pour de nombreuses solutions, tu as une version limitée gratos et la vraie version est payante.
    Ou alors, tu regardes les fonctionnalité de l'outil avant de commencer ton projet et si il ne convient pas et que tu n'es pas prêt à payer pour avoir la fonctionnalité manquante tu cherches un autre outil ou tu le développe toi même (l'avantage de l'open source).
    Mais encore une fois , si on parle de "vrai projet" , investir 2000$ qui sera de toute manière refacturer tout ou partie au client c'est peanuts
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  15. #15
    Expert confirmé Avatar de AoCannaille
    Inscrit en
    juin 2009
    Messages
    1 281
    Détails du profil
    Informations forums :
    Inscription : juin 2009
    Messages : 1 281
    Points : 4 224
    Points
    4 224
    Par défaut
    Citation Envoyé par Anselme45 Voir le message
    Qu'est-ce que cela veut dire "tourner en local"? Est-ce que tu connais encore des appareils qui fonctionnent sans un accès externe (internet, bluetooth et autre)?
    De mémoire Firefox utilise SQLite pour stocker les préférences utilisateurs. ça me casserait vraiment les noix que mon navigateur ai besoin de se connecter à un serveur quelconque pour savoir que mon 4e bookmark est dvp... Ne serait-ce qu'en terme de performance, mais également en terme de résilience en cas de coupure réseau...

  16. #16
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    septembre 2008
    Messages
    8 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : septembre 2008
    Messages : 8 310
    Points : 17 369
    Points
    17 369
    Par défaut
    En même temps si tu as une coupure réseau, Firefox est nettement moins utile.

  17. #17
    Expert confirmé Avatar de AoCannaille
    Inscrit en
    juin 2009
    Messages
    1 281
    Détails du profil
    Informations forums :
    Inscription : juin 2009
    Messages : 1 281
    Points : 4 224
    Points
    4 224
    Par défaut
    Citation Envoyé par Waldar Voir le message
    En même temps si tu as une coupure réseau, Firefox est nettement moins utile.
    Certes, c'est pas une raison pour autant ^^

  18. #18
    Membre émérite
    Inscrit en
    janvier 2006
    Messages
    701
    Détails du profil
    Informations forums :
    Inscription : janvier 2006
    Messages : 701
    Points : 2 585
    Points
    2 585
    Par défaut
    Citation Envoyé par Anselme45 Voir le message
    Tu aurais gagné à te taire! A moins que ta voiture soit une 4L avec un auto-radio de 1980, ton ordinateur de bord est accessible depuis l'extérieur au minimum via bluetooth!

    1. Plusieurs spécialistes en sécurité informatique ont prouvé qu'il était possible de prendre le contrôle de certains véhicules modernes en agissant à distance sur les fonctions clé du véhicule: le moteur, le système de freinage, etc...


    2. Les médias viennent juste d'annoncer que des centaines d'utilisateurs n'avaient plus pu accéder à leur Tesla et démarrer à cause de problèmes réseau!
    Super, tu as donc prouvé que la véritable aberration n'est pas l'absence de cryptage de la base de données mais bien la mise en réseau forcée d'outils qui n'avaient aucune raison de l'être!
    Le cryptage de la base, ça te protège d'un vol de disque dur. Par contre si l'interface réseau transmet tout en clair à quiconque connait suffisamment bien l'OS embarqué...

    Sauf qu'évidemment ça ne permet pas de troller contre SQLite...
    D'ailleurs au passage, puisque tu dis que SQLite ne te convient pas pour cette raison, tu utilises quoi?
    Parce que quand je lis:

    Citation Envoyé par Anselme45 Voir le message
    C'est justement tout le problème de l'approche: D'un côté SQLite se présente comme la solution idéale, légère, gratuite, sympa et quand tu veux faire un vrai projet: 2 000$!
    Même si je te donnais raison (ce qui n'est pas le cas) je préférerais ce modèle à celui qui ne propose que la version payante (avec éventuellement une période d'essai gratuite).
    Et puis on n'a pas forcément besoin de crypter la base de l'environnement de développement (sauf bien sûr que maintenant tous les développements se font sur des machines virtuelles sur le cloud donc potentiellement piratables... mais où est l'aberration, je vous demande?)

  19. #19
    Membre extrêmement actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    octobre 2017
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : octobre 2017
    Messages : 1 327
    Points : 4 587
    Points
    4 587
    Par défaut
    Citation Envoyé par esperanto Voir le message
    Sauf qu'évidemment ça ne permet pas de troller contre SQLite...
    Exemple typique d'une personne qui faute d'arguments traite les autres de "troll"!

    Désolé, mais je ne vais pas poursuivre la discussion avec un personnage qui décrédibilise ses interlocuteurs sans raison!

Discussions similaires

  1. Réponses: 0
    Dernier message: 15/03/2021, 12h18
  2. Réponses: 1
    Dernier message: 17/09/2018, 13h42
  3. Réponses: 0
    Dernier message: 19/06/2018, 09h52
  4. Réponses: 1
    Dernier message: 17/02/2017, 20h01
  5. Réponses: 2
    Dernier message: 18/12/2009, 14h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo