Hans-Peter Diettrich wrote:
Mark Morgan Lloyd schrieb:
Hans-Peter Diettrich wrote:
Mark Morgan Lloyd schrieb:
Given a fragment of code like this:

type
  TDbConfigFrame = class(TFrame)
..
  public
    { public declarations }
    property DbInit: TDbConfigInit write fdbInit;
  end;

A write-only property can be implemented by a (setter) procedure,

Yes, I was assuming that.

to which you add whatever arguments may be useful (e.g. Sender).

OK, but in that case I presume that you can no longer go via the object's property (reserved word).

Why do you need both?

You don't, I was assuming that being unobtrusive was an advantage,

Also in that case I presume that some unauthorised caller could spoof an explicit sender parameter.

What degree of security do you expect?

Would it be sufficient to initialize the field in the constructor?
Then you could add an constructor that takes the value, and make the field inaccessible to other code (private).
..
He who can read your source code also can modify it, to get rid of all your protection attempts.

I'd settle for protecting my code from its original author :-)

You are of course entirely right: from the POV of protecting against silly mistykes it's entirely adequate to have a validation parameter, even if it's not used for anything else. I was originally thinking about it from the POV of bare-metal protected-mode code, where you could explicitly bind a procedure to ring 2 thus protecting it from ring 3 access.

--
Mark Morgan Lloyd
markMLl .AT. telemetry.co .DOT. uk

[Opinions above are the author's, not those of his employers or colleagues]

--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply via email to