Re: [POLL] Escaping behaviour in SQL/LDAP/regexes

Arran Cudbard-Bell via Freeradius-Users <[email protected]>
Newsgroups gmane.comp.freeradius.user
Message-ID <[email protected]>

>> Assume the value of User-Name is: Bob'; DROP TABLE users;--
>> 
>> Possible answers:
>> 
>> a) SELECT * FROM my-table WHERE Service-Type = 'Framed-User' AND User-Name = 'Bob'; DROP TABLE users;--'
>> b) SELECT * FROM my-table WHERE Service-Type = \'Framed-User\' AND User-Name = 'Bob\'; DROP TABLE users;--'
>> c) SELECT * FROM my-table WHERE Service-Type = 'Framed-User' AND User-Name = 'Bob\'; DROP TABLE users;--'
>> d) Other.  Please write expected, expanded, SQL statement.

These are possible answers for each of the 4 policy snippets immediately below the possible answers.

We're looking for something like:

1. a
2. b
3. c
4. d

> My expectation is always a prepared statement in the form
> 
>  SELECT * FROM my-table WHERE Service-Type = 'Framed-User' AND User-Name = ?
> 
> called with the current User-Name variable value as a bound parameter.
> 
> This will of course not work with "%{sql_condition}" as a variable.  But
> then I don't expect "%{sql_condition}" to be a variable either.  Why
> would it?  Better write the complete statement.

This is a contrived set of policies.  The point is to determine what user's expectation of how the variables in the SQL statement are expanded/interpolated, not to debate best practice in policy writing :) 

-Arran
-
List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.