Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Les Illégaux: une base de données securisante. Est ce possible? [ Base de données / Autre ] (new2000)

mardi 27 mai 2008 à 16:48:06 | Les Illégaux: une base de données securisante. Est ce possible?

new2000

Salut!

J'ai un problème de securité que j'arrive à resoudre. Mais pas du tout bien comme je le pense...
S'il vous plait, j'aimerai partager avec vous mes idées.
Je m'explique:
J'ai un programme déjà fait. C'est juste la facturation travaillant avec du Stock en même temps.
1) Pour une première securité, voilà ce que j'avais pensé faire dans l'évenement BeforeInsert
de mon composant AdoTable1:

If Adotable1.RecordCount > 15 then begin
ShowMessage('version demonstrative...contactez le Programmeur!');
Abort;
Exit;

Ben, ces codes serviront surement quand le programme est distribué pour une question demonstrative.

2) Et pour ma deuxième securité (c'est ici où je n'arrive pas à gerer ça):
si le programme sera installé definivement quelque part. Comment le proteger contre des copies
illégales?
Voilà ce que je tente de faire et ça ne marche pas comme il faut:
J'ai avec moi une Base de données toute simple dans mon PenDrive (elle peut être vide...peu importe).

Et alors, le programme devra demarrer normalement à condition que mon PenDrive soit connecté à un
des ports USB. Mais alors, qu'est ce qui s'passe si le dit PenDrive ne pas connecté à mon ordinateur?
au lancement de l'application, ce message apparait:

"Project Project1.exe raised exception class EOleException with message 'F:\MaBase.mdb' ce n'est pas
chemin valide..."


C'est un très bon message logiquement correcte.
Mais il est très inconfortable cette demarche, parce que l'"illegal" vera le chemin et pourra s'inspirer de créer vraisemblablement une Base de données pareillle. Et peu tenter sa chance pour le faire bien marcher.
Ma préocupation est faire de manière que ce message n'apparaisse pas comme tel. Mais qu'il y est juste un message disant par exemple: "vous n'avez pas de permission".
Au final, même si le programme se fait copier...mais il ne peut marcher!

Developper est une passion,

New2000


mardi 27 mai 2008 à 16:52:33 | Re : Les Illégaux: une base de données securisante. Est ce possible?

dominique.stock

Réponse acceptée !
Bonjour,
Tu dois utiliser
 try
/ ton code d'ouverture de la base de données/
except on e:exception do 
      showmessage('toto');
end;


Dom

mardi 27 mai 2008 à 18:20:26 | Re : Les Illégaux: une base de données securisante. Est ce possible?

cirec

Membre Club Administrateur CodeS-SourceS
Réponse acceptée !
Salut,

c'est peine perdue ... toute protection est contournable
le mieux étant de faire une application de démo (avec limitation ... portion de code non implémenté donc pas de risque de le craquer) et d'en faire une pour ceux qui l'auront acheté

 
@+
Cirec


mardi 27 mai 2008 à 19:05:46 | Re : Les Illégaux: une base de données securisante. Est ce possible?

f0xi

Membre Club Administrateur CodeS-SourceS
Réponse acceptée !

Cirec a raison

une fois le programme fini, insere des directives de compilation comme suis :

unit Unit1;

{.$DEFINE VCOMPLETE} { directive désactivée }


{$IFDEF VCOMPLETE}
  {$MESSAGE warn 'Vous compilez ce programme en version complete!'}
{$ELSE}
  {$MESSAGE warn 'Vous compilez ce programme en version Demo!'}
{$ENDIF}


interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Menus, StdCtrls;

type
  TForm1 = class(TForm)
    MainMenu1: TMainMenu;
    Fichier1: TMenuItem;
    Ouvrir1: TMenuItem;
    Fermer1: TMenuItem;
    Sauvegarder1: TMenuItem;
    SaveDialog1: TSaveDialog;
    OpenDialog1: TOpenDialog;
    Memo1: TMemo;
    procedure FormCreate(Sender: TObject);
    procedure Sauvegarder1Click(Sender: TObject);
  private
    { Déclarations privées }
  public
    {$IFNDEF VCOMPLETE} {code pour version Demo}
    procedure WarnDemo(const Msg: String);
    {$ENDIF}
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

const
  CRLF = #13#10;

procedure TForm1.FormCreate(Sender: TObject);
begin
  {$IFDEF VCOMPLETE}{ code version complete }
  caption := 'Programme v1.0';
  {$ELSE}{ code version demo }
  caption := 'Programme v1.0 (DEMO)';
  WarnDemo('Ce programme est une version Demo,'+CRLF+
           'certaines actions ne seront donc pas disponible.');
  {$ENDIF}
end;

procedure TForm1.Sauvegarder1Click(Sender: TObject);
begin
  {$IFDEF VCOMPLETE}
{ code version complete }
  if SaveDialog1.Execute then
    Memo1.Lines.SaveToFile(SaveDialog1.FileName);
  {$ELSE}
{ code version demo }
  WarnDemo('Sauvegarde indisponible en version Demo.');
  {$ENDIF}
end;

{$IFNDEF VCOMPLETE}
{ code version demo }
procedure TForm1.WarnDemo(const Msg: String);
begin
  MessageDlg(Msg, mtInformation, [mbOk], 0);
end;
{$ENDIF}

end.


Compilation en mode VCOMPLETE = version complete, le code demo est ignoré et non inclus.
Compilation sans mode VCOMPLETE = version demo, le code complete est ignoré et non inclus.

cela genere donc 2 executables different.






Cette discussion est classé dans : message, base, programme, données, securité


Répondre à ce message

Sujets en rapport avec ce message

Chargement base de données [ par orelien ] Bonjour,J'ai réalisé une application delphi, dont la base paradox est placée sur un réseau. Le temps de chargement du programme me paraît assez long Créer un exécutable avec une base de données [ par m_cyril1 ] Bonjour!! Je débute en delphi et je développe (sous delphi7 version professionnelle) un petit programme de cal Chemin base des données sur le serveur non trouvé [ par notrica ] Salut,J'ai installer mon logiciel sur le serveur win 2003, la base des données se trouve dans un repertoire different de là où se trouve le programme. Base de donnée autonome sans serveur réseau...? [ par djynn62 ] Bonjour,Je souhaite créer un programme de gestion de carnets (dont les feuillets ont chacun un numéro différend, le tout réparti sur plusieurs personn xml [ par sidalilo ] salut ...je travail sur une base de données xml et je veux faire une requete sql sur cette base(xml) et j'ai utilisé une table query etj'ai fait une r probleme avec lexecution de module base de données [ par tlemcen86 ] aprés avoir installer le delphi 5 le module base de données ne sexecute pas et je reçoi le message suivant 'impossible dinitialiser le BDE' y a -t il Se connecter à une base de données SQL Server à partir de Delphi [ par kam_2006 ] Ce forum est très interessent. base de données Oracle [ par DevMln ] j'ai une table maitre et une table détail qui contient un champ etranger , lorsque je suprime un enregistrement de la table maitre comment les enregis Firebird - copier des données d'une base à une autre [ par simonpelloquin ] Bonjour à tous,Soit deux fichiers de base de donnée firebird "base1.fdb" et "base2.fdb". Je souhaite récupérer des enregistrements dans une table de b migration bdd Paradox vers bdd Firebird [ par rabab21 ] Salam à tous,je veux migrer des données stockées dans une base de données sous SGBDR Paradox verx une base de données sous Firebird. alors que ces deu


Nos sponsors

Sondage...

CalendriCode

Septembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
2930     

Consulter la suite du CalendriCode



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,19 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.