Repository navigation
Add Tornado and Bottle models and resolve inherited handler attributes - #89
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Framework item of #70: Tornado and Bottle models, with the call-graph work class-based handlers needed.
test: define the Tornado and Bottle models), implementation follows.tornado-models:RequestHandlerandWebSocketHandlersubclasses are entry points; the inherited request methods (get_argument,get_body_argument,request, cookies) are HTTP sources;writeandfinishare HTML sinks,redirecta redirect sink (target only),xhtml_escapea sanitizer; the HTTP clients are SSRF sinks with untrusted responses.bottle-models:@route,@get,@postand the methods of aBottleapplication are entry points,bottle.requestthe source,redirect,static_file(filename only),template(the template, not its variables) andHTTPResponsesinks,html_escapea sanitizer.self.get_argumentin a handler denotestornado.web.RequestHandler.get_argument, andself.requestin a Django class-based view denotesView.request, now a source.Student.create(...)on the class itself resolves to the static or class method, which was an unknown target before. A@staticmethodis recorded as such in its summary so callers pass no receiver: the dvpwa SQL injection was reached through the wrong argument until now.self.write({...}),HTMLResponse(headers={...})) is serialised by every framework, never rendered, so it carries noHTML; the FastAPI template loses a headers-dict false positive and nothing else in the corpus moves.static); 30 bundled plugins; usage guide updated.Part of #70.