prev | Version 1094 (Mon Nov 27 20:46:09 2006) | next |
Risk | Importance | Discussion |
---|---|---|
Denial of service | Minor | Researchers can wait until the system comes back up |
Data in database destroyed | Minor | Restore from backup |
Unauthorized data access | Major | If competitors access data, competitive advantage may be lost |
Backups corrupted, so that data is permanently lost | Major | Redoing trials may cost millions of dollars |
Data corrupted, and corruption not immediately detected | Critical | Researchers may make recommendations or diagnoses that lead to injury or death |
Table 25.1: Risk Assessment |
QUERY_STRING
, while unexpected ones may be presentQUERY_STRING
may not even be formatted according to the HTTP specificationhttp://www.webdtr.com
http://www.webdtr.com/display.py?user=cdarwin
webdtr.com
: none presenthttp://www.webdtr.com/display.py?user=bmcclintock
http://www.webdtr.com/display.py?user=nobody
?http://www.webdtr.com/display.py?user=
?cgitb
(or its equivalent) enabled in the production systemhttp://www.webdtr.com/display.py?testid=178923
# marker:vdots form = cgi.FieldStorage() test_id = form.getvalue('testid') query = "SELECT date,result FROM Results WHERE (id=%s)" % test_id cursor = connection.cursor() cursor.execute(query) results = cursor.fetchall(); cursor.close(); # marker:vdots
testid
to "1);UPDATE Results SET result=FALSE WHERE (id=*"
"SELECT date,result FROM Results WHERE (id=1);UPDATE Results SET result=FALSE WHERE (id=*)"
testid
's value was an integer, and in range"admin"
and "admin"
, or "guest"
and "guest"
, etc.http://www.webbdtr.com
/tmp/webdtr/0001.tmp
, /tmp/webdtr/0002.tmp
, etc./tmp/webdtr/9999.tmp
def read_file(filename, required_uid): '''Read submission data from a file, checking that the file is owned by the specified user.''' owner = os.stat(filename)[ST_UID] if owner != required_uid: raise SecurityException('%s has incorrect owner' % filename) stream = open(filename, 'r') data = stream.read() stream.close() return data
https
in URL instead of http
)Figure 25.1: Secure Communication with Asymmetric Keys
Figure 25.2: Signing a Message
prev | Copyright © 2005-06 Python Software Foundation. | next |