我想(PGP/GPG)签署python代码.是的,我已经阅读过这个以及许多其他关于保护和混淆 python代码的网站 - 这一切都不是我想要的.我不想混淆代码.我希望客户和用户能够看到代码,他们可以修改代码,复制代码并进行衍生工作,我希望将软件置于GPLv3下.但我想拥有"已签名"的插件,因此在执行过程中它们可能会受到信任.
这在Python中可行吗?检查gpg签名后我可以导入库吗?什么是容易的:检查文件的gpg签名,然后通过导入加载,否则引发异常.但这只适用于单文件导入,而不是目录python模块.
很明显,如果客户在程序中更改了GPG密钥,或者在检查算法中自己删除了一些行,则一切都消失了 - 但这不是问题.他可以做任何他想做的事 - 但这很愚蠢.他想要的是值得信赖.我想让他通过将其复制到"插件"目录中来添加第三方插件,并让程序检查插件的"可信度" - 然后导入它.(所以他可以运行没有签名的插件,但是他有自己的风险.)
我有一个问题,我选择Python作为一个更大项目的可能语言的决定取决于答案 - 我自己无法想出:
我们都知道Python没有真正的对象封装,所以没有像对象的"私有"属性.关于这个问题,Guido van Rossum说,人们可以在不被"允许"的情况下访问异物的隐藏部分,"我们都是成年人","就是不要这样做".只要我自己编写的软件是我自己的,我就可以很好地生活,所以我对自己的错误负责,并且可以尝试避免这些事情.
但是 - 这就是我的问题:如果我提供一个带有一些扩展点的插件的插件框架,并且许多插件是由其他人,也许是我完全不能信任的插件.
如何防止暴露我的框架内部被插件访问?
有没有办法实现这一点,或者是使用Python有信心没有人会滥用我的API的唯一方法?
我正在一个项目中使用Django作为后端,Vue作为前端,并尝试实现Apollo / Graphene / GraphQL作为数据传输层。大多数功能都可以使用,但是我对CORS / CSRF设置一无所知。
有谁知道如何通过CSRF令牌解决对graphql / graphene API的保护?在django日志终端上,我得到:
Forbidden (CSRF token missing or incorrect.): /graphql/
Run Code Online (Sandbox Code Playgroud)
...在Vue / Js控制台上,我看到了
Cross-Origin Request Blocked: The Same Origin Policy disallows
reading the remote resource at http://localhost:8080/sockjs-node/
info?t=1558447812102.
Run Code Online (Sandbox Code Playgroud)
您可以在此处查看(并结帐,它是开源的)此项目。
http:// localhost:8000,http:// localhost:8000 / admin和http:// localhost:8000 /都可以正常工作。该查询query{menuItems{id, title, slug, disabled}}在graphiql中运行良好。
settings.py:
Forbidden (CSRF token missing or incorrect.): /graphql/
Run Code Online (Sandbox Code Playgroud)
问题在这里:* yarn serve在http:// localhost:8080./manage.py …
我正在使用brunch/node.js进行绝望.我有一个带有几个简单页面的项目,使用早午餐,backbone.js,jade和coffeescript.
app/assets/index.html包含以下脚本:
<script src="data/vendor.js" type="text/javascript"></script>
<script src="data/app.js" type="text/javascript"></script>
<script src="data/data.js" type="text/javascript"></script>
<script type="text/javascript">require('initialize');</script>
Run Code Online (Sandbox Code Playgroud)
brunch-config.coffee:
exports.config =
files:
javascripts:
defaultExtension: 'coffee'
joinTo:
'data/app.js': /^app/
'data/vendor.js': /^vendor/
order:
before: [
'vendor/scripts/jquery-1.11.1.js',
'vendor/scripts/underscore.js',
'vendor/scripts/backbone-1.1.2-full.js',
]
stylesheets:
joinTo:
'data/app.css': /^app\/styles/
templates:
defaultExtension: 'jade',
joinTo:
'data/app.js': /^app\/templates/
Run Code Online (Sandbox Code Playgroud)
所有咖啡文件都正确编译并合并到vendor.js和app.js中,我可以在app.js中找到带有grep 的(javascript'ed)initialize.coffee代码.应用程序/ initialize.coffee:
# The function called from index.html
$(document).ready ->
app = require('application')
app.initialize()
return
Run Code Online (Sandbox Code Playgroud)
我在spa书签教程之后对此进行了建模.但是当我启动早午餐服务器时,我的Js浏览器控制台总是告诉我:
TypeError: _ is undefined
Error: Cannot find module "./initialize" from "/"
Run Code Online (Sandbox Code Playgroud)
TypeError现在不打扰我.但我不能找出为什么赫克 …
我使用 Django 2.1 和 DRF,并计划创建一个包含许多插件应用程序的相当大的应用程序。我希望/apiDRF 有一个 URL 作为端点,但允许每个应用程序在 REST 端点上公开一个特殊模型,例如:
主要是urls.py:
router = routers.DefaultRouter()
router.register(r'users', UserViewSet)
urlpatterns = [
# ...
path('api/', include(router.urls)),
# ...
]
Run Code Online (Sandbox Code Playgroud)
并在foo_app/urls.py:
router = routers.DefaultRouter()
router.register(r'foomodel', FooModelViewSet)
Run Code Online (Sandbox Code Playgroud)
现在,/api/foomodel产生一个404错误。foo_model/urls.py 被导入(在 Django 启动时打印一条打印语句),所有其他的都foo_model.urlpattern[path...]被识别并且工作正常。
如何为中央 api REST 端点定义自定义 api 模型端点?我在文档中没有找到任何内容。
提前致谢。
在Python 3.4下使用Django 1.7.1,我有一个问题,我没有找到任何答案,尽管看似平庸,并且在互联网上看到许多类似的问题.到目前为止我没有解决任何解决方案
我有一个简单的django模板,归结为必不可少的部分.它是内容块中的simle"trans"标签翻译字符串,它覆盖了admin/base内容块.
{% extends "admin/base.html" %}
{% block content %}
{% trans "Entries" %}
{% endblock %}
Run Code Online (Sandbox Code Playgroud)
有了这个我得到一个TemplateSyntaxError:
Invalid block tag: 'trans', expected 'endblock'
Run Code Online (Sandbox Code Playgroud)
到目前为止我学到了你需要使用块转换来做类似的事情.但我不明白 - 为什么这样做不起作用?有趣的是,如果我取代{% trans "Entries" %}了{{ _("Entries") }}一切正常.但我需要使用trans标签获得额外的好处.
有很多例子,像在这里,它使用正是图案上方-和它的工作对子级.欢迎任何帮助.
django ×3
python ×3
apollo ×1
backbone.js ×1
brunch ×1
coffeescript ×1
cors ×1
csrf ×1
gnupg ×1
import ×1
node.js ×1
pgp ×1
python-3.x ×1
security ×1
templates ×1
translation ×1
vue.js ×1