April 24, 2010: We are pleased to announce that Version 4 of this course is now under development. For updates and an early peek at the content, please check out the Software Carpentry blog at http://www.software-carpentry.org/blog/.
| 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 35.1: Risk Assessment
QUERY_STRING, while unexpected ones may be presentQUERY_STRING may not even be formatted according to the HTTP specificationhttp://www.webdtr.comhttp://www.webdtr.com/display.py?user=cdarwinwebdtr.com : none presenthttp://www.webdtr.com/display.py?user=bmcclintockhttp://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 35.1: Secure Communication with Asymmetric Keys
Figure 35.2: Signing a Message
Copyright © 2005-09 Python Software Foundation.
Created Thu Aug 6 21:56:06 2009 UTC