小编Mor*_*sen的帖子

基本HTTP和承载令牌认证

我目前正在开发一个REST-API,它为开发环境提供HTTP-Basic保护.由于真正的身份验证是通过令牌完成的,我仍然试图找出,如何发送两个授权头.

我试过这个:

curl -i http://dev.myapp.com/api/users \
  -H "Authorization: Basic Ym9zY236Ym9zY28=" \
  -H "Authorization: Bearer mytoken123"
Run Code Online (Sandbox Code Playgroud)

我可以为我的IP禁用HTTP身份验证,但由于我通常在具有动态IP的不同环境中工作,这不是一个好的解决方案.我错过了什么吗?

rest curl restful-authentication basic-authentication access-token

105
推荐指数
4
解决办法
29万
查看次数

沙盒/逐行运行python代码

我希望能够像这两个人那样做:

发明原则@ 18:20, Live ClojureScript游戏编辑器

如果您不想查看视频,我的问题是:

说我有这个代码:

....
xs = []
for x in xrange(10):
    xs.append(x)
...
Run Code Online (Sandbox Code Playgroud)

我想创建一个环境,我可以在其中执行代码,语句语句以及在更改时观察/跟踪locals/globals.也许给它一个变量列表来跟踪locals/globals字典.就像单步执行代码并保存状态信息一样.

最理想的是,我想保存每个状态及其关联的上下文数据(locals/globals),以便我可以验证谓词.

我想做一些像布雷特·维克多的二元搜索示例,发明原则@ 18:20

我有道理吗?我发现在文本中解释很复杂,但视频展示了我想要尝试的内容:)

谢谢你的时间


我试过/读/ googled:

我的下一步是研究ast和编译代码并逐位运行它,但我真的需要一些指导..我应该更多地考虑反射和inspect模块?

我之前使用过Spin模型检查器,但它使用自己的DSL,我只是喜欢在实现语言中进行建模,在本例中是python.

哦,顺便说一句,我知道沙盒代码的安全含义,但我并没有尝试建立一个安全的执行环境,我正在尝试创建一个非常交互的环境,例如针对原始模型检查或谓词断言.

python interpreter programming-languages development-environment dynamic

13
推荐指数
2
解决办法
1726
查看次数

理解C指针,数组和负索引

我正在尝试学习C中的指针,并为此目的进行测验.这是一个问题:

#include <stdio.h>

char *c[] = {"GeksQuiz", "MCQ", "TEST", "QUIZ"};
char **cp[] = {c+3, c+2, c+1, c};
char ***cpp = cp;

int main()
{
    printf("%s ", **++cpp);
    printf("%s ", *--*++cpp+3);
    printf("%s ", *cpp[-2]+3);
    printf("%s ", cpp[-1][-1]+1);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

该行的结果:

 printf("%s ", *cpp[-2]+3);
Run Code Online (Sandbox Code Playgroud)

困惑我,但让我一步一步解释,我是如何理解的.

  • char *c[]- 是char的指针数组.
  • char **cp[]- 是指向char的指针数组(我认为这是一个*c[]反向顺序的包装器).
  • char ***cpp- 是指向指向char的指针的指针(我认为这是一个用于**cp[]执行位置修改的包装器).

**++cpp- 因为cpp指向cp,然后++cpp将指向cp+1哪个c+2,所以将打印双重引用TEST …

c arrays pointers

9
推荐指数
1
解决办法
158
查看次数

使用"make"C编程(艰难地学习C)



我正在通过"以艰难的方式学习C"来学习C编程.我目前正在练习1,可以在这里找到:http://c.learncodethehardway.org/book/ex1.html

我理解所涵盖的概念,但不了解编译过程.在命令行中使用"make"命令时,为什么这样做:

$ make ex1
Run Code Online (Sandbox Code Playgroud)

这不起作用:

$ make ex1.c
Run Code Online (Sandbox Code Playgroud)

我实际上只是在一分钟前运行第二个命令.我最终想通了.直到我这样做,我不断收到此错误消息:

make: nothing to be done for 'ex1.c'
Run Code Online (Sandbox Code Playgroud)

虽然这只是一个技术性问题,但我仍然想知道发生了什么.谢谢 :)

c makefile compilation

7
推荐指数
1
解决办法
2139
查看次数

龙卷风:get_argument - 我应该自己逃避输入吗?

我正在为单页应用程序运行Tornado Web服务器.客户端正在POST到服务器,我正在tornado.web.RequestHandler.get_argument()用来获取输入.

在测试时,我似乎无法强制SQL注入错误.它似乎get_argument()以某种方式逃脱了输入.当从登录表单(用户名+密码)进行POST时,我尝试了各种技巧来强制进行简单的SQL注入,但无济于事.

EDIT2:

哈!我最终设法做了一个SQL注入:DI URL转义了一些输入,我可以看到注入的SQL语句一直到数据库模块.我从登录表单生成的查询没有得到提交,因为它应该是一个SELECT语句 - 所以我实际上无法改变数据库.

如果查询永远不会被提交并且整个查询的输出(包括注入的)被隐藏,那么可以做出什么样的损坏?

例如,如果查询应该是,说SELECT * FROM Users WHERE UserID='USERNAME' AND Password='PASSWORD';不过对于用户名输入注入了一个INSERT,所以USERNAME成为USERNAME'; INSERT INTO Users (UserID, Password) VALUES ('hacker', 'hacked'); --我们最终有:

SELECT * FROM Users WHERE UserID='USERNAME'; INSERT INTO Users (UserID, Password) VALUES ('hacker', 'hacked'); --' AND Password='PASSWORD';

我一般都知道SQL注入的危险,我只是对这个细节感到好奇.我也知道我应该哈希和盐密码,上面的代码是为了示例的简化.

python database sql-injection tornado

3
推荐指数
1
解决办法
1991
查看次数

C没有得到正确的结果

我需要在程序中使用此变量的结果,但我不明白为什么我无法得到正确的结果.

double r = pow((3/2), 2) * 0.0001;
printf("%f", r);
Run Code Online (Sandbox Code Playgroud)

c

1
推荐指数
2
解决办法
53
查看次数

为什么无论我使用哪种类型,我的代码总是显示“small int”?

def check_it(probe):
    if probe is str:
        return ("a string")
    
    elif probe is int and probe > 100:
        return ("large int")
    else:
        return ("small int")
    
print(check_it("hi"))
Run Code Online (Sandbox Code Playgroud)

python

1
推荐指数
1
解决办法
42
查看次数