Class: Zoom::SecurityProfile::UnsafePython

Inherits:
Zoom::SecurityProfile show all
Defined in:
lib/zoom/profile/unsafe_python.rb

Instance Attribute Summary

Attributes inherited from Profile

#exts, #files, #format_flags, #regex, #taggable

Instance Method Summary collapse

Methods inherited from Zoom::SecurityProfile

#after, #before, #exe, #flags, #grep_like_format_flags, #only_exts_and_files, #preprocess, #tool, #translate

Methods inherited from Profile

#after, #before, #class_name, #exe, #flags, from_json, #grep_like_format_flags, #grep_like_tags?, #name, #only_exts_and_files, #preprocess, profile_by_name, subclasses, #to_s, #tool, #translate

Constructor Details

#initialize(n = nil, t = nil, f = nil, b = nil, a = nil) ⇒ UnsafePython

Returns a new instance of UnsafePython.



2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/zoom/profile/unsafe_python.rb', line 2

def initialize(n = nil, t = nil, f = nil, b = nil, a = nil)
    t = Zoom::ProfileManager.default_tool

    super(n, t, f, b, a)
    @exts = ["py"]
    functions = [
        "c?[Pp]ickle\\.loads?",
        "eval",
        "exec",
        "os\\.(popen|system)",
        "subprocess\\.call",
        "yaml\\.load"
    ]
    start_or_not_variable = "(^|[^\\nA-Za-z_])"
    @regex = [
        start_or_not_variable,
        "(#{functions.join("|")})\\(",
    ].join
end