unsafe | Experiments in execution of untrusted Python code
kandi X-RAY | unsafe Summary
kandi X-RAY | unsafe Summary
This is a little experiment to see to what extent, if any, it is possible to run untrusted Python (or at least Python-like) code under Python 3 while successfully preventing it from escaping the sandbox it’s put inside. Python used to have an rexec module which tried to do something similar, but with the advent of new-style classes in Python 2.2 it was abandoned as being too complex and unworkable. However, in Python 2.6 the ast module was added, which may provide a way to make restricted execution workable again by detecting if the code is trying to access any private variables or attributes (i.e. those with names beginning with _) and refusing to run it if so. So, the challenge is to see if you can write a script that will successfully break out of the sandbox when passed to unsafe.safe_eval() or unsafe.safe_exec(). Note that denial of service does not count - it is trivially easy to either hang forever or to use up all the memory that the operating system will allow.
Support
Quality
Security
License
Reuse
Top functions reviewed by kandi - BETA
- Safe import
- Copy a module
- Check if a name is valid
- Safely compile the source code
- Returns a namespace for safe imports
- Compile Python source code
- Safely compile a string
- Evaluate source
- Evaluate source code
- Return a list of directory names
- Safely remove an attribute from an object
- Safely access an attribute
- Safely set an attribute
unsafe Key Features
unsafe Examples and Code Snippets
Community Discussions
Trending Discussions on unsafe
QUESTION
Both in ffi tutorials and in automatically generated interfaces, *const T
pointers are used most of the time. As far as I know the difference between &T
and *const T
is only that *const T
doesn't have to fulfill certain conditions like not being null and is unsafe to dereference.
ANSWER
Answered 2022-Apr-05 at 10:07An element of answer can probably be found in the fact that references must be aligned. As using un-aligned references is undefined behaviour, and the alignment of the pointers cannot be guaranteed in FFIs, defaulting to pointers seems to be a sane choice
QUESTION
I am trying to compile and load dynamically generated Java code during runtime. Since both ClassLoader::defineClass and Unsafe::defineAnonymousClass have serious drawbacks in this scenario, I tried using hidden classes via Lookup::defineHiddenClass instead. This works fine for all classes that I tried to load, except for those that call lambda expressions or contain anonymous classes.
Calling a lambda expression throws the following exception:
...ANSWER
Answered 2022-Feb-23 at 18:19You can not turn arbitrary classes into hidden classes.
The documentation of defineHiddenClass
contains the sentence
- On any attempt to resolve the entry in the run-time constant pool indicated by
this_class
, the symbolic reference is considered to be resolved toC
and resolution always succeeds immediately.
What it doesn’t spell out explicitly is that this is the only place where a type resolution ever ends up at the hidden class.
But it has been said unambiguously in bug report JDK-8222730:
For a hidden class, its specified hidden name should only be accessible through the hidden class's 'this_class' constant pool entry.
The class should not be accessible by specifying its original name in, for example, a method or field signature even within the hidden class.
Which we can check. Even a simple case like
QUESTION
I have read few stackoverflow posts about "Looking up a deactivated widget's ancestor is unsafe" error but couldn't find an answer which work.
I've tried to set a global key with the scaffold, and to use WidgetsBinding.instance.addPostFrameCallback() without success.
I'm pretty sure I'm doing something stupid and easy to fix, but I can't figure out what.
This is a simple version of the code which replicates the error when you go back from PhotoViewPage (photo_view package) :
...my_home_page.dart
ANSWER
Answered 2021-Dec-18 at 16:14I'm not sure where the error was from, but switching flutter channel from master to stable fixed it.
QUESTION
I am running a Spring Boot app that uses WebClient for both non-blocking and blocking HTTP requests. After the app has run for some time, all outgoing HTTP requests seem to get stuck.
WebClient is used to send requests to multiple hosts, but as an example, here is how it is initialized and used to send requests to Telegram:
WebClientConfig:
...ANSWER
Answered 2021-Dec-20 at 14:25I would propose to take a look in the RateLimiter direction. Maybe it does not work as expected, depending on the number of requests your application does over time. From the Javadoc for Ratelimiter: "It is important to note that the number of permits requested never affects the throttling of the request itself ... but it affects the throttling of the next request. I.e., if an expensive task arrives at an idle RateLimiter, it will be granted immediately, but it is the next request that will experience extra throttling, thus paying for the cost of the expensive task." Also helpful might be this discussion: github or github
I could imaginge there is some throttling adding up or other effect in the RateLimiter, i would try to play around with it and make sure this thing really works the way you want. Alternatively, consider using Spring @Scheduled to read from your queue. You might want to spice it up using embedded JMS for further goodies (message persistence etc).
QUESTION
Looking into UTF8 decoding performance, I noticed the performance of protobuf's UnsafeProcessor::decodeUtf8
is better than String(byte[] bytes, int offset, int length, Charset charset)
for the following non ascii string: "Quizdeltagerne spiste jordbær med flØde, mens cirkusklovnen"
.
I tried to figure out why, so I copied the relevant code in String
and replaced the array accesses with unsafe array accesses, same as UnsafeProcessor::decodeUtf8
.
Here are the JMH benchmark results:
ANSWER
Answered 2022-Jan-12 at 09:52To measure the branch you are interested in and particularly the scenario when while
loop becomes hot, I've used the following benchmark:
QUESTION
I'm trying to adapt some layers of existing C++ code to be used by Rust and apparently the way is through a C API.
For example, one function might return a struct as an object
...ANSWER
Answered 2022-Jan-21 at 01:15extern "C"
on both sides + #[repr(C)]
on the Rust side + only using C-compatible types for interfacing between C++ and Rust, should work.
QUESTION
I am trying to audit my application on Chrome Lighthouse, but I can't get Service Worker working. It is registered and running with no error, but when I try to run Lighthouse it gets stuck and console log the fallowing error:
...ANSWER
Answered 2022-Jan-11 at 19:31If I uncheck the clear cache option in lighthouse options it starts working.
Edit: As mentioned by Sean McCarthy below the correct name is "Clear storage"
QUESTION
This follows as a result of experimenting on Compiler Explorer as to ascertain the compiler's (rustc's) behaviour when it comes to the log2()
/leading_zeros()
and similar functions. I came across this result with seems exceedingly both bizarre and concerning:
Code:
...ANSWER
Answered 2021-Dec-26 at 01:56Old x86-64 CPUs don't support lzcnt
, so rustc/llvm won't emit it by default. (They would execute it as bsr
but the behavior is not identical.)
Use -C target-feature=+lzcnt
to enable it. Try.
More generally, you may wish to use -C target-cpu=XXX
to enable all the features of a specific CPU model. Use rustc --print target-cpus
for a list.
In particular, -C target-cpu=native
will generate code for the CPU that rustc itself is running on, e.g. if you will run the code on the same machine where you are compiling it.
QUESTION
I am trying to update my SpringBoot maven project to Java 17.
...ANSWER
Answered 2021-Oct-25 at 06:28It compiles, when you'll add jaxb-runtime
dependency, as below:
QUESTION
Consider the following code:
...ANSWER
Answered 2021-Dec-08 at 13:39The C# specification says the following (my bold):
23.4 Fixed and moveable variables
The address-of operator (§23.6.5) and the
fixed
statement (§23.7) divide variables into two categories:
Fixed variables and moveable variables....snip...
The
&
operator (§23.6.5) permits the address of a fixed variable to be obtained without restrictions. However, because a moveable variable is subject to relocation or disposal by the garbage collector, the address of a moveable variable can only be obtained using afixed
statement (§23.7), and that address remains valid only for the duration of thatfixed
statement.In precise terms, a fixed variable is one of the following:
- A variable resulting from a simple-name (§12.7.3) that refers to a local variable, value parameter, or parameter array, unless the variable is captured by an anonymous function (§12.16.6.2).
- .....
So it's explicitly forbidden by the spec. As to why it's forbidden, for that you would have to ask the language designers, but considering how much complexity is involved in capturing variables, it is somewhat logical.
Community Discussions, Code Snippets contain sources that include Stack Exchange Network
Vulnerabilities
No vulnerabilities reported
Install unsafe
You can use unsafe like any standard Python library. You will need to make sure that you have a development environment consisting of a Python distribution including header files, a compiler, pip, and git installed. Make sure that your pip, setuptools, and wheel are up to date. When using pip it is generally recommended to install packages in a virtual environment to avoid changes to the system.
Support
Reuse Trending Solutions
Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items
Find more librariesStay Updated
Subscribe to our newsletter for trending solutions and developer bootcamps
Share this Page