Difference between revisions of "Robert'); DROP TABLE Students;--"

Explain xkcd: It's 'cause you're dumb.
Jump to: navigation, search
(add 1253 ref)
Line 6: Line 6:
 
}}
 
}}
  
'''<code>Robert'); DROP TABLE students;--</code>''', also known as '''Little Bobby Tables''', is the youngest son of elite hacker [[Mrs. Roberts]]. His older sister is [[Elaine Roberts]]. His "full" name is known to cause problems with some computers. When he was first enrolled in school ([[327: Exploits of a Mom]]) it exploited a vulnerability in the parsing of student's names into the school's student database resulting in the school losing all the student records for the year.
+
'''<code>Robert'); DROP TABLE students;--</code>''', also known as '''Little Bobby Tables''', is the youngest son of elite hacker [[Mrs. Roberts]]. His older sister is [[Elaine Roberts]]. His "full" name is known to cause problems with some computers. When he was first enrolled in school ([[327: Exploits of a Mom]]), it exploited a vulnerability in the parsing of student's names into the school's student database resulting in the school losing all the student records for the year.
  
In {{w|SQL}}, commands are separated by semicolons ";" and data is often quoted using single quotes -'-.  Commands may also be enclosed in parentheses '(' and ')'.  Data is stored in tables of similar items (e.g. "students") and individual entries are "rows" in the table.  To delete an entire table (and every row of data in that table), you use the command "DROP" (e.g. "DROP TABLE students").  The "--" represents the start of a {{w|Comment_(computer_programming)#SQL|SQL comment}} which ensures that the rest of the command is ignored so an error will not occur.
+
In {{w|SQL}}, commands are separated by semicolons '''<code>;</code>''' and data is often quoted using single quotes '''<code>'</code>'''.  Commands may also be enclosed in parentheses '''<code>(</code>''' and '''<code>)</code>'''.  Data is stored in tables of similar items (e.g. '''<code>students</code>''') and individual entries are "rows" in the table.  To delete an entire table (and every row of data in that table), you use the command '''<code>DROP</code>''' (e.g. '''<code>DROP TABLE students</code>''').  The '''<code>--</code>''' represents the start of a {{w|Comment_(computer_programming)#SQL|SQL comment}} which ensures that the rest of the command is ignored so an error will not occur.
  
 
The exploited vulnerability is that the single quote in the name input was not properly "escaped" by the software.  Thus, when the name is embedded into some SQL statement, the quote is erroneously parsed as a closing quote inside some SQL statement, instead of being parsed as part of the name.  Lack of such escaping is a common SQL vulnerability; this type of exploit is referred to as {{w|SQL injection}}.
 
The exploited vulnerability is that the single quote in the name input was not properly "escaped" by the software.  Thus, when the name is embedded into some SQL statement, the quote is erroneously parsed as a closing quote inside some SQL statement, instead of being parsed as part of the name.  Lack of such escaping is a common SQL vulnerability; this type of exploit is referred to as {{w|SQL injection}}.

Revision as of 21:13, 23 March 2014

Robert'); DROP TABLE Students;--
First appearance 327: Exploits of a Mom
Appearances Click to view

Robert'); DROP TABLE students;--, also known as Little Bobby Tables, is the youngest son of elite hacker Mrs. Roberts. His older sister is Elaine Roberts. His "full" name is known to cause problems with some computers. When he was first enrolled in school (327: Exploits of a Mom), it exploited a vulnerability in the parsing of student's names into the school's student database resulting in the school losing all the student records for the year.

In SQL, commands are separated by semicolons ; and data is often quoted using single quotes '. Commands may also be enclosed in parentheses ( and ). Data is stored in tables of similar items (e.g. students) and individual entries are "rows" in the table. To delete an entire table (and every row of data in that table), you use the command DROP (e.g. DROP TABLE students). The -- represents the start of a SQL comment which ensures that the rest of the command is ignored so an error will not occur.

The exploited vulnerability is that the single quote in the name input was not properly "escaped" by the software. Thus, when the name is embedded into some SQL statement, the quote is erroneously parsed as a closing quote inside some SQL statement, instead of being parsed as part of the name. Lack of such escaping is a common SQL vulnerability; this type of exploit is referred to as SQL injection.

The name Bobby Tables inspired a website, bobby-tables.com, a guide for beginning programmers to learn the right way to avoid SQL injection in their code..

A similarly named character appears in 884: Rogers St., with the same code injection in his middle name. It appears in 1253: Exoplanet Names as one of the suggested planet names.