小编rdr*_*rey的帖子

你如何防止对GraphQL/Apollo服务器的嵌套攻击?

如何使用以下查询阻止对Apollo服务器的嵌套攻击:

{
  authors {
    firstName
    posts {
      title
      author {
        firstName
        posts{
          title
          author {
            firstName
            posts {
              title
              [n author]
                [n post]
            }
          }
        }
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

换句话说,如何限制查询中提交的递归数量?这可能是潜在的服务器漏洞.

apollo graphql graphql-js

50
推荐指数
2
解决办法
6902
查看次数

如何发现Python Fabric中的当前角色

这是一个非常特定于Fabric的问题,但更有经验的python黑客可能能够回答这个问题,即使他们不了解Fabric.

我试图在命令中指定不同的行为,具体取决于它运行的角色,即:

def restart():
    if (SERVERTYPE == "APACHE"):
        sudo("apache2ctl graceful",pty=True)
    elif (SERVERTYPE == "APE"):
        sudo("supervisorctl reload",pty=True)
Run Code Online (Sandbox Code Playgroud)

我用这样的函数来攻击它:

def apache():
    global SERVERTYPE
    SERVERTYPE = "APACHE"
    env.hosts = ['xxx.xxx.com']
Run Code Online (Sandbox Code Playgroud)

但这显然不是很优雅,我只是发现了角色,所以我的问题是:

如何确定当前实例属于哪个角色?

env.roledefs = {
    'apache': ['xxx.xxx.com'],
    'APE': ['yyy.xxx.com'],
}
Run Code Online (Sandbox Code Playgroud)

谢谢!

python fabric

23
推荐指数
4
解决办法
7972
查看次数

Swagger:将枚举定义重用为查询参数

我想definitions在查询字符串中使用作为参数定义的一部分定义的枚举.

我在definitionsSwagger 2.0规范文件中定义了Swagger Enum .

OperationType:
  type: string
  enum:
  - registration
  - renewal
Run Code Online (Sandbox Code Playgroud)

我可以在其他定义中创建对它的引用:

Operation:
  type: object
  properties:
    name:
      type: string
    type:
      $ref: '#/definitions/OperationType'
Run Code Online (Sandbox Code Playgroud)

我可以使用schema标签在参数为时引用它in: body,但不是在它的时候in: query

    - name: operation
      in: body
      description: description
      schema:
        $ref: '#/definitions/OperationType'
Run Code Online (Sandbox Code Playgroud)

我试着放弃schema:并提供参考enum:,但无法让它工作.

swagger swagger-2.0

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

使用随机主键创建django对象

我正在使用一个API,它希望我为使用API​​的事务生成不透明的"引用ID",换句话说,用户无法以任何方式猜测或推断的唯一引用.(是'推断'适当的英语?)

这就是我目前一起入侵的内容:

randomRef = randint(0, 99999999999999)
while Transaction.objects.filter(transactionRef = randomRef).count():
    randomRef = randint(0, 99999999999999)

Transaction.objects.create(user=user, transactionRef=randomRef, price=999)
Run Code Online (Sandbox Code Playgroud)

不幸的是,我的数据库目前似乎缺少交易.我已经意识到我的方法并不特别是线程安全(假设我在多个mod_wsgi apache线程上运行相同的django代码,它们都可以生成相同的randomRef!)

有没有人有更好的技巧为我生成随机主键?

python random django primary-key

9
推荐指数
3
解决办法
6932
查看次数

如何杀死 celery 工作进程以重新启动进程

我有一个 celery 工作进程,它在celery.signals.worker_process_init. 如果无法建立连接并引发异常,则 celery Worker 将无法启动,这是预期的行为。

该套接字类还使用threading.Timer. 不幸的是,由于计时器线程没有特殊的异常处理,因此如果连接发生问题,我的工作线程不会退出。

我开始捕获套接字读写操作的异常,并尝试了很多方法来正常停止当前的工作进程:

sys.exit(1)  # Doesn't kill the worker process (because it's running in a thread?)
Run Code Online (Sandbox Code Playgroud)

下一次尝试,我看到它在celery/billiard问题中的某处提到:

raise SystemExit("Socket error")  # Same, I guess
Run Code Online (Sandbox Code Playgroud)

这有效:

os.kill(os.getpid(), signal.SIGHUP)
Run Code Online (Sandbox Code Playgroud)

但是芹菜工作主管进程进入快速旋转,创建立即退出的芹菜工作进程,而不是在几次尝试后放弃并死亡。

有没有更好的方法从 celery 任务外部发出 celery 工作进程死亡信号?

python sockets multithreading celery python-multiprocessing

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

变量与模板文字插值

您是否应该${foo}在Apollo查询中使用而不是variables: {foo: foo}

在此输入图像描述

javascript apollo

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

Python Pyramid&Chameleon模板语言逃脱了html

我无法理解变色龙的标签.我是django的用户,但我决定将我的CompSci课程伙伴和我自己介绍给Pyramid,因为我虽然更轻巧=更容易学习.

目前$ {}标签正在逃避我试图通过它输出的任何html标签.在django中,有一些方法可以指定变量是"安全的"并且不需要进行转义.

我怎样才能在金字塔/变色龙中做同样的事情?

python pyramid chameleon template-tal

3
推荐指数
2
解决办法
3519
查看次数

使用coffeescript(zappa)在nodejs/commonjs中重新导出模块(mongoose)

我正在使用mongoose @ 2.0.4,我想mongoose.connect()在模块中整齐地抽象掉调用.

所以使用nodejs,我希望以下工作:
myMongoose.coffee:

mongoose = require 'mongoose'
mongoose.connect 'mongodb://localhost/test'
@exports = mongoose
Run Code Online (Sandbox Code Playgroud)

并用于: MyModel.coffee

mongoose = require 'myMongoose'
console.log mongoose #Prints massive object (including Schema)
Schema = mongoose.Schema
console.log Schema # undefined
Run Code Online (Sandbox Code Playgroud)

为什么访问像Schema不起作用的子元素(技术上是构造函数,我认为)?即使添加@exports.Schema = mongoose.Schema到myMongoose.coffee也无法解决问题.

mongoose node.js coffeescript

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

在Raphael.js中制作一个发光的动画

我正试图在raphael.js中实现脉动发光效果.这是我的代码http://jsfiddle.net/eaPSC/我非常抱歉大脑.;)

我尝试设置动画效果的宽度和不透明度的动画,但似乎都没有受到动画的影响.(发光是静止的.我通过隐藏大脑元素,放大并检查发光元素来检查它,并且根本就没有动作.)

我尝试使用相同的过程动画单独的(非发光)元素,并且多个属性可以获得动画效果.

谢谢!

javascript raphael

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