Note that there are some explanatory texts on larger screens.

plurals
  1. USCharles Burns
    primarykey
    data
    text
    plurals
    1. CO@Col.Shrapnel: "some attacks take advantage of known data transformations" has a lot to do with 2O injection. Please see my URI. Is the OP's exact SQL vulnerable to this specific attack? Probably not. That isn't the point. The point is mutating the data can add unneeded complexity, and examples exist where doing so actually creates security holes. This is likely not the most complex SQL he'll ever write. The IN() note was to your point that binding avoids injection. Yes it does. No, it's not always an option. Based on your impressive rep, I assume this is a misunderstanding and not trolling.
      singulars
    2. CO@Col.Shrapnel: It is true though that in the common cases, queries that use binding and have no dynamically generated parts, I know of no way whatsoever to SQL inject through the parameterized query. I hesitate to use words like "impossible", though, because information security is still a young field and the "impossible" becomes the norm frequently. Remember Oracle's embarrassment around their ad campaign, "Can't break it. Can't break in." Turns out you can...
      singulars
    3. COThe second paragraph is about second order injection. True, in the simple case of the OP, second-order injection would probably not be a problem, but in many real-world situations, binding can only be used for parts of the query. For example, binding cannot replace column or table names, which occasionally need to be generated based on user-input (though I think it's best to design around this if possible). Binding can also not be used with IN(var1, var2...varN) statements without dynamically generating the query.
      singulars
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload