Commit Graph

834 Commits

Author SHA1 Message Date
Ned Batchelder
6264d41f92 Very minor docstring tweak :) 2013-05-08 14:48:46 -04:00
Will Daly
4f33b8e0c0 Fixed a UnicodeEncodeError that occurred when generating cache keys
from non-ASCII unicode code submissions.
2013-05-06 15:04:20 -04:00
Ned Batchelder
e3de0dc847 A fuller unit test with a real 8.02x problem. 2013-05-06 11:39:22 -04:00
Ned Batchelder
403218ec6b If sandboxed code raises an exception, the exception will be cached. 2013-05-06 11:39:21 -04:00
Ned Batchelder
001ef7b0fe Use only safe characters for the cache key 2013-05-06 11:39:21 -04:00
Ned Batchelder
d7ea1dafe8 On second thought, make can_execute_unsafe_code a function returning a boolean. 2013-05-06 11:39:21 -04:00
Ned Batchelder
f1fac732cf A new boolean on XModuleSystem that determines whether to allow execution of untrusted unsandboxed code. 2013-05-06 11:39:21 -04:00
Ned Batchelder
f4d84e67e1 Build the XModuleSystem anew for each test so we can fiddle with it safely. 2013-05-06 11:39:21 -04:00
Ned Batchelder
477fe670dd All re-randomization has to be bucketed to get a reasonable cache hit rate. 2013-05-06 11:39:20 -04:00
Will Daly
0b2aedb4fe Added datadog monitoring of safe_exec() time 2013-05-06 11:39:20 -04:00
Ned Batchelder
baa6b4e3e4 The cache key for safe_exec has to be hashed to keep it a reasonable size. 2013-05-06 11:39:20 -04:00
Ned Batchelder
bde976dad2 Refactor code_jail to accommodate non-Python code. 2013-05-06 11:39:19 -04:00
Ned Batchelder
55e910aafc Not sure why my branch was ahead of master for the version of distribute. Make them the same. 2013-05-06 11:39:19 -04:00
Ned Batchelder
bcdc11c3a5 Hint functions are now run in the sandbox. 2013-05-06 11:39:19 -04:00
Ned Batchelder
ed13f0a0f1 Catch up to new exception handling in responses. 2013-05-06 11:39:19 -04:00
Ned Batchelder
5e7d328e7f Use the Django cache for sandboxed code execution. 2013-05-06 11:39:19 -04:00
Ned Batchelder
c8b908a244 capa.safe_exec can use a cache. 2013-05-06 11:39:19 -04:00
Ned Batchelder
0021b0acb3 Refactor to move assumed_imports into capa, so that code_jail is more pure. 2013-05-06 11:39:19 -04:00
Ned Batchelder
89f6ef8407 Move capa/safe_exec into its own directory, in prep for moving code here. 2013-05-06 11:39:18 -04:00
Ned Batchelder
efaa0eea03 More fixes to the merge, now all tests pass. 2013-05-06 11:39:18 -04:00
Ned Batchelder
be79810ff6 Fix one problem from the merges 2013-05-06 11:39:18 -04:00
Will Daly
f62dad2f57 Added symbolic response tests 2013-05-06 11:39:18 -04:00
Ned Batchelder
e61a6fe787 Make it possible for customresponse check functions to get extra arguments, though they need to be declared in the XML. 2013-05-06 11:39:18 -04:00
Ned Batchelder
7aa493ec85 A start on getting these tests to run again. 2013-05-06 11:39:18 -04:00
Ned Batchelder
283fc47a95 Jailed code importing random explicitly would get the wrong seed. 2013-05-06 11:39:17 -04:00
Ned Batchelder
839c568474 Hmm, turns out exec wants just one dict to properly simulate Python module execution. 2013-05-06 11:39:17 -04:00
Ned Batchelder
df17c0c7dd Move symmath into capa so that it's available where needed 2013-05-06 11:39:17 -04:00
Ned Batchelder
67d0670b2e Symbolic response no longer runs its checker in the Python sandbox. 2013-05-06 11:39:16 -04:00
Ned Batchelder
94f6e685df Mock the response from the snuggletex server, and unskip the SymbolicResponse test. 2013-05-06 10:55:07 -04:00
Ned Batchelder
81c4e4f74f Make check_function more flexible so symbolicresponse can pass in more information. 2013-05-06 10:55:06 -04:00
Ned Batchelder
a40aed58d0 Clean up 2013-05-06 10:55:06 -04:00
Ned Batchelder
4fb73248ba Try to get <symbolicresponse> test running. (Not yet) 2013-05-06 10:55:06 -04:00
Ned Batchelder
4b234a63a3 Future division is really a capa concern, not a general-purpose codejail concern. Move it. 2013-05-06 10:55:06 -04:00
Ned Batchelder
7187b10f9c Use the python_path argument to safe_exec 2013-05-06 10:55:06 -04:00
Ned Batchelder
a04317b31d Files are properly copied in both implementations of safe_exec, and a new python_path argument adds to the python path. 2013-05-06 10:55:06 -04:00
Ned Batchelder
abb9174559 Refactor how script chunks are run. 2013-05-06 10:55:06 -04:00
Ned Batchelder
12b6876753 safe_exec seeds the random module, and now we have tests for it. 2013-05-06 10:55:06 -04:00
Ned Batchelder
716a97ea59 Symbolic response doesn't need to pre-import symmath any more, I think? 2013-05-06 10:55:05 -04:00
Ned Batchelder
7c498be606 Move packages around so we can install packages into the sandbox. 2013-05-06 10:55:05 -04:00
Ned Batchelder
5db5426e05 Use the real safe_exec; make the seed available in the context. 2013-05-06 10:55:04 -04:00
Ned Batchelder
19e3a0ceb9 Implement safe_exec on top of jailpy (old unsafe safe_exec is still here); Remove some crazy stuff from the context; always pass globals and locals, locals are the things that can be changed. 2013-05-06 10:55:04 -04:00
Ned Batchelder
908f44b9cd snippets aren't used. Remove them. 2013-05-06 10:55:04 -04:00
Ned Batchelder
248017b4ea No longer need to support <coderesponse> without <codeparam>, so scrap the code. 2013-05-06 10:55:04 -04:00
Ned Batchelder
a6677aa0a8 Computed answers are run through safe_exec. 2013-05-06 10:55:04 -04:00
Ned Batchelder
37ca6bf77e Move our specialization of safe_exec into a new module to avoid circular imports. 2013-05-06 10:55:04 -04:00
Ned Batchelder
33abe54e0d Work in progress to sandbox the uses of eval in LMS. 2013-05-06 10:55:03 -04:00
Sarina Canelake
2cb3af1e35 Only throw factorial-related exception on factorial raised exception 2013-05-01 10:53:22 -04:00
Sarina Canelake
95a224fcea Fix pep8 violations 2013-04-30 11:21:20 -04:00
Sarina Canelake
573116073e Add error message when factorial given non-integral value 2013-04-30 11:16:14 -04:00
Sarina Canelake
f95331dcc1 fix more pep8 violations 2013-04-29 15:01:11 -04:00