【我怎样才能安全地执行python的子集?】教程文章相关的互联网学习教程文章

如何在Python中安全擦除文件/目录?【代码】

是否有任何模块提供某种基本的“安全”删除,某事.像Linux实用程序“擦除”,例如import securitystuffsecuritystuff.wipe( filename )我需要保护不再容易检索的公司源代码. 附:是的我知道“擦拭”并不完美,例如在日志文件系统上.但安全需求并不太高.解决方法:标准库中没有这样的功能,并且用随机字节覆盖文件的每个字节的简单实现不是很难做到,例如f = open(path, "wb")f.write("*"*os.path.getsize(path))f.close()os.unlink(path)...

python – 考虑到GIL,asyncio如何不是线程安全的?【代码】

asyncio docs读取:Most asyncio objects are not thread safe. You should only worry if you access objects outside the event loop.有人可以解释这一点,或举例说明误用asyncio会导致对线程之间共享的对象进行非同步写入吗?我认为GIL意味着一次只有一个线程可以运行解释器,所以在解释器中发生的事件,比如读取和编写Python对象,在线程之间进行了简单的同步. 上面引用的第二句听起来像是一条线索,但我不知道该怎么做. 我猜一个线...

python – 游戏登录身份验证和安全性

首先,我会说我对编码的安全性完全陌生.我正在帮助一个朋友开发一个小型游戏(用Python),它将有一个登录服务器.我对安全性知之甚少,但我知道许多游戏确实存在问题.从第三方应用程序(机器人)到WPE数据包操作的所有内容.考虑到这个游戏将会有多小以及用户群有限,我怀疑我们会遇到严重问题,但我们会尽力限制问题.我不知道从哪里开始或我应该使用什么方法,或者什么是值得的.例如,将数据发送到服务器,例如登录名和密码. 我被告知他的信息在...

python迭代器和线程安全【代码】

我有一个由两个函数操作的类.一个函数创建一个小部件列表并将其写入类中:def updateWidgets(self):widgets = self.generateWidgetList()self.widgets = widgets另一个函数以某种方式处理小部件:def workOnWidgets(self):for widget in self.widgets:self.workOnWidget(widget)这些函数中的每一个都在它自己的线程中运行.问题是,如果updateWidgets()线程在workOnWidgets()线程运行时执行会发生什么? 我假设作为for … in循环的一...

我怎样才能安全地执行python的子集?

我需要在数据库中存储基本功能的源代码,并允许通过管理界面修改它.此代码将使用多个数字和字符串作为参数,并返回一个数字或无.我知道eval是邪恶的,所以我需要在基于python的web-app中实现一种安全的方法来执行python的一个非常基本的子集,或者至少在语法上类似的东西. 显而易见的答案是实现DSL,但是,我没有经验,我也不知道从哪里开始,而且很多可用的资源似乎有点过头了.我希望可能已经有一些东西可以让我基本上从数据库中的字符串生...

Python:使用sympy.sympify对数学函数执行安全的eval()【代码】

我正在编写一个程序,用户需要能够使用包含numpy和scipy函数的自编数学函数,例如. scipy.special.wofz(). 这些函数将存储在文件中,并由程序作为字符串导入.我环顾四周,看到eval()或exec()不是一种安全的方法.例如. here. 安全问题是好的用户从访问好用户系统的恶意用户加载文件. 我在考虑做这样的事情:#!/bin/python from scipy.special import * from numpy import * import sympy# Define variable a vars = {"a":1} # This is t...

python – 将空dict作为关键字参数传递总是安全的吗?【代码】

有什么案例吗?f(arg1, arg2..., argN)工作并产生结果和f(arg1, arg2..., argN, **{} )产生不同的结果,或导致错误? 我假设在参数列表中没有出现** kwds. 上下文是我正在编写一个包含函数及其参数的仿函数供以后评估,并希望支持可选关键字.解决方法:是的,这总是安全的.这两个调用是完全等价的,函数f()无法区分它们(当然,除了内省源代码之外).

如何在Python包中安全地“伪造”模块【代码】

目前我在master git分支中有以下目录结构:/dir1__init__.pymodule.py这将改为(在我的分支中):/dir1__init__.py/dir2module1.py # With 70% of code of module.pymodule2.py # With 30% of code of module.py问题: >我知道不可能让git跟踪两个新文件,但由于git识别重命名(并且它认为组织到文件夹中作为重命名),我将能够跟踪从主分支到我的分支的module1.py对module.py的更改. ,至少70%的代码(我必须手动更新module2.py).那么有更...

python – 如何使用Boto从ENI添加或删除安全组?【代码】

我正在使用Boto Python界面来管理我的EC2软件定义的网络,我正在编写一种方法来管理弹性网络接口(ENI)上的安全组. 我不知道如何告诉EC2在ENI中添加或删除安全组. 到目前为止我的方法基本上是:import boto conn = boto.connect_ec2()my_eni = conn.get_all_network_interfaces(['eni-xxxx1234'])[0] my_eni_groups = my_eni.groups my_eni_sg_ids = [ x.id for x in my_eni_groups ]desired_sg_state = ['sg-xxxx1234','sg-xxxx5678...

Python C扩展不是线程安全的吗?【代码】

我用python脚本做了一个c扩展,这个脚本是相当费力的.代码本身经过了很好的测试和简单.使用一些大型列表调用c扩展,然后执行一些聪明的算法并返回一些新列表. c扩展是100%自给自足,它不使用任何其他c函数,也不使用任何python对象的方法(它确实使用这些标准的Python方法:PyFloat_AsDouble,PyList_GetItem,PyList_Size,PyList_New,Py_BuildValue,PyList_Append ).到目前为止,我只在非多线程环境中使用它. 今天我开始在一个多线程的GU...

python – 字节可以安全地从UUID中删除,仍然期望它保持其独特性吗?

我编写了以下模块,它将UUID编码为任意基数: http://pypi.python.org/pypi/shortuuid/ 现在,这会将其降低到22个带有默认字母的符号,同时保留唯一性,但我想知道在最大化保留的唯一性时我可以切断多少(/哪个)数字. UUID的所有数字是否同等随机/唯一,或者某些数字比其他数字更随机?例如,如果前几个数字是机器/应用程序特定的标识符,那么显然它们将比最后几个更不随机.在我的实验中我没有注意到这样的事情,但在我建议之前我想确定一下...

python – PyTables线程安全吗?

我试图将Python线程模块与PyTables一起使用.有人能告诉我PyTabes是否是线程安全的吗?我得到一些错误,它似乎与线程有关. 谢谢,标记解决方法:来自PyTables常见问题解答:http://www.pytables.org/moin/FAQ 它说并发读取是安全的,但并发写入甚至是带有读取器线程的单个写入器可能是个坏主意.

编写快速且线程安全的Python代码【代码】

概述 如今我也是使用Python写代码好多年了,但是我却很少关心GIL的内部机制,导致在写Python多线程程序的时候。今天我们就来看看CPython的源代码,探索一下GIL的源码,了解为什么Python里要存在这个GIL,过程中我会给出一些示例来帮助大家更好的理解GIL。 GIL概览 有如下代码: static PyThread_type_lock interpreter_lock = 0; /* This is the GIL */ 这行代码位于Python2.7源码ceval.c文件里。在类Unix操作系统中,PyThread_typ...

python – Django Q对象(复杂查询)是否安全?【代码】

我似乎找不到任何资源来解释Django内置的复杂查询(Q对象或F对象)的安全性.是否可以在这些查询中注入SQL攻击?我做了一个小测试:from models import * from django.db.models import Q q = MyModel.objects.filter(Q(mycolumn__contains='%; DROP DATABASE mydatabase;')) print q >>> [] print q.query >>> SELECT `mydatabase_mytable`.`mycolumn` FROM `mydatabase_mytable` WHERE `mydatabase_mytable`.`mycolumn` LIKE BINARY...

如何在Python中安全地创建嵌套目录

检查文件目录是否存在的最优雅方法是什么,如果不存在,如何使用Python创建目录?这是我以前使用过的方法: import osfile_path = "/my/directory/filename.txt" directory = os.path.dirname(file_path)try:os.stat(directory) except:os.mkdir(directory) f = file(filename) 不知何故,我错过了os.path.exists。现在推荐使用这个方法: def ensure_dir(file_path):directory = os.path.dirname(file_path)if not os...

执行 - 相关标签