Hello Pavel L.

I do not understand your point, as usual. I raise a factual issue about security, and you do not answer how this can be solved with your proposal, but appeal to argument of authority and declare your "strong opinion".

I do not see any intrinsic opposition between having session objects and transactions. Nothing prevents a session object to be transactional beyond your willingness that it should not be.

Now, I do expect all PostgreSQL features to be security-wise, whatever their scope.

I do not think that security should be traded for "cheap & fast", esp as the sole use case for a feature is a security pattern that cannot be implemented securely with it. This appears to me as a huge contradiction, hence my opposition against this feature as proposed.

I can't to agree with your position.

Consider this example. I want to record some inappropriate user actions to audit table and rollback transaction. But aborting transaction will also abort record to audit table. So, do not use tables, becouse they have security implications.

Indeed, you cannot record a transaction failure from a transaction.

This is very similar to your approach.

I understand that your point is that some use case could require a non transactional session variable. I'm not sure of how the use case would go on though, because once the "attacker" disconnects, the session variable disappears, so it does not record that there was a problem.

Anyway, I'm not against having session variables per se. I'm argumenting that there is a good case to have them transactional by default, and possibly an option to have them non transactional if this is really needed by some use case to provide.

The only use case put forward by Pavel S. is the security audit one where a session variable stores that audit checks have been performed, which AFAICS cannot be implemented securely with the proposed non transactional session variables.

--
Fabien.

Reply via email to