小编Sha*_*iul的帖子

保护可从Android访问的REST API

我们正在构建一款Android游戏,它需要访问Web服务 - 因此我们在PHP中编写了一个RESTful API,它在我们自己的服务器上运行.API提供的是:创建用户,登录,下载游戏,检索游戏列表,提交分数......等等.现在我想,如果一些有经验的用户获得API 的URL格式 - 他/他将能够以多种方式废弃系统:

  • 创建一个脚本并运行它来创建自动用户 - 我想我可以通过CAPTCHA或类似的东西来阻止它.但同样,验证码会惹恼游戏玩家.
  • 恶意用户使用他的浏览器登录,下载游戏然后按照自己的意愿提交分数 - 所有这一切都可以通过简单地从浏览器中输入来调用API.我假设恶意用户以某种方式知道要调用的API URL - 通过在应用程序发出HTTP请求时嗅探.
  • 我需要确保仅从安装游戏的Android设备发出请求.(游戏将免费)

现在我该如何防止这种滥用?

php security rest android

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

TCPDF错误:[图像]无法获取图像

我正在使用TCPDF和Drupal的打印模块来生成文章的PDF,并在单击链接生成PDF时以及以下错误消息结束:

TCPDF ERROR: [Image] Unable to get image: http://localhost/pathToDrupal/themes/bartik/logo.png

图像存在于指定的位置.我试过申请:

allow_url_fopen = On;
allow_url_include = On;
Run Code Online (Sandbox Code Playgroud)

php.ini但但无法解决问题.

请关心帮助:(

php tcpdf

23
推荐指数
3
解决办法
8万
查看次数

DatagramSocket.send线程是否安全?

我打算使用一个实例DatagramSocket并从不同的线程调用它的send方法......将UDP数据包发送到不同的客户端.方法线程是否安全,即从不同的线程调用此方法不会产生任何麻烦/不一致/竞争条件?

谢谢!

java concurrency datagram thread-safety

14
推荐指数
2
解决办法
3643
查看次数

PHP文件上传:基于mime或扩展的验证?

当我尝试处理文件上传时,是否应该根据文件MIME类型或文件扩展名运行验证?

这两种文件验证方式的优缺点是什么?

而且,我应该关注任何其他安全问题吗?

在这些日子里,我依赖于MIME类型,但在这篇文章中回答最多的投票

PHP中的文件上传问题说:

永远不要依赖浏览器提交的MIME类型!

php file-upload

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

两个不同的Git仓库在同一目录中

我想保留两个不同的git回购.repos应该保留在同一个根目录中.怎么实现呢?

我愿意的是:管理两个略有不同的回购.我可以在同一个文件夹中有两个完全不同的回购吗?

感谢关心:)

git

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

Python如何覆盖在第三方库的模块中定义的方法

我已经通过pip安装了第三方库tornado并且需要覆盖一个方法,比如说在模块的全局范围内定义.因此,对该方法的所有调用都将使用我的重写版本.或者,也许,我想控制它,以便只有我的代码才会使用被覆盖的版本.to_unicodetornado.escape

如果它已在类中定义,那么将它子类化并覆盖该方法没有问题!但由于这只是一种方法,我想知道如何覆盖它.

令人惊讶的是,我发现在SO中找不到合适的解决方案,这种不可能实现吗?

python python-3.x

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

在SQLAlchemy中的session.commit()之后更新对象

发布后更新对象是否session.commit()正常工作?或者我需要刷新对象吗?

我认为这对于这个问题已经足够了,但如果需要,我可以提供更多信息来澄清我的问题.

编辑:

通过更新,我的意思是设置一些属性,即对象的列值.

sqlalchemy

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

检查xml ElementTree节点是否为None/False

myvar通过简单地检查变量是否具有非 - 无值值是否安全:

if myvar:
    print('Not None detected')
Run Code Online (Sandbox Code Playgroud)

我问这个是因为我有一个变量并且正在检查变量是否不是None简单if variable:但是检查失败了.该变量包含一些数据,但在if检查中评估为False .

完整代码:

from xml.etree import ElementTree as ElementTree

root = ElementTree.fromstring('Some xml string')

parameters = root.find('Some Tag')

udh = parameters.find('UDH')

if udh and udh.text:  # In this line the check is failing, though the udh variable has value: <Element 'UDH' at 0x7ff614337208>
    udh = udh.text
    # Other code
else:
    print('No UDH!')  # Getting this output
Run Code Online (Sandbox Code Playgroud)

python

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

Java servlet读取文件并将其作为响应发送

我正在尝试编写一个servlet,它将从远程位置读取(下载)文件,并将其作为响应发送,或多或少像代理一样隐藏实际文件的下载.我来自PHP背景,我可以像调用file_get_contents一样完成它.

使用servlet/jsp实现这一目标的任何方便方法?

谢谢

java-ee

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

Celery预定了Timezone的任务问题

我在服务器上使用芹菜,服务器时间现在是BST,突然我的计划任务在一小时前执行!以前,服务器时间是欧洲/伦敦,这是格林尼治标准时间,但现在由于白天节约它已成为BST(GMT + 1)

我已经配置芹菜使用时区,如:

CELERY_TIMEZONE = 'Europe/London'
Run Code Online (Sandbox Code Playgroud)

然后在调用任务时,我还将eta参数的本地化值设置为"Europe/London",如下所示:

from datetime import datetime
from pytz import timezone

locale_to_use = timezone('Europe/London')
current_time = locale_to_use.localize(datetime.now())
Run Code Online (Sandbox Code Playgroud)

并在调用任务时将其current_time用作eta参数值.

现在有没有像我本地化eta参数值那样的错误?我的服务器在BST.

在白天节能时区生效之前,这个配置没有任何问题!

编辑:

为了清楚起见,我在这里发布我的代码示例:

@app.task(ignore_result=True)
def eta_test():

    logger.info('Executing eta_test on {0}'.format(datetime.now()))


def run_eta_test(hour, minute):

    now_time = datetime.now()
    target_time = now_time.replace(hour=hour, minute=minute, second=0)

    from settings import options
    from pytz import timezone

    local_zone = timezone('Europe/London')

    target_time = local_zone.localize(target_time)

    eta_test.apply_async(eta=target_time)
Run Code Online (Sandbox Code Playgroud)

然后我从服务器的python控制台调用run_eta_test,如下所示:

test_tasks.run_eta_test(17, 17)
Run Code Online (Sandbox Code Playgroud)

也就是说,在同一天的17:17:00执行任务.服务器时间是17:15:45而不是在2秒后安排它,它立即执行任务: …

python celery

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