小编Sam*_*tch的帖子

我如何保护我的AJAX服务?

现在我正在开发一种服务,处理覆盖在谷歌地图上的当地餐馆的评论/推荐.基本上是Yelp,但仅限于一定的利基.无论如何,因为我不想加载每个位置并立即查看,我终于开始使用jQuery和AJAX调用了.

我的问题是:如何阻止其他人从服务器上的ajax脚本中"抓取"数据?

主要的地图/位置信息功能需要是公开的,因为用户不必登录以使用该应用程序,因此可能简单地归结为难以刮擦.我希望你们中的一位AJAX老手可以指出我更好的想法,或者一些我还没有找到的"最佳实践"文档.

到目前为止,我所能想到的只有:

  • 面向用户的脚本在服务器上打开一个短暂的会话,如果没有活动会话,AJAX调用将无法运行.
  • 发送某种访问密钥以及应用程序代码,并要求在所有AJAX调用中.但不确定如何以一种不容易绕过的方式最好地实现这一点.

php ajax jquery web-services

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

字符串封装像$"Hello World".

我只是/etc/init.d/httpd在Centos 6.5盒子上阅读并注意到所有的字符串似乎都被引用了$"Hello World.".我之前从未见过这种语法,而且我似乎无法通过谷歌发现任何东西.

摘抄:

if ! LANG=$HTTPD_LANG $httpd $OPTIONS -t >&/dev/null; then
    RETVAL=6
    echo $"not reloading due to configuration syntax error"
    failure $"not reloading $httpd due to configuration syntax error"
Run Code Online (Sandbox Code Playgroud)

这是怎么回事?

bash

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

为什么PHP不为浮点比较提供Epsilon常数?

在看到许多关于比较浮点数相等性的PHP问题之后,答案是简单地为Epsilon选择一个任意值,然后执行if( abs($a-$b) < 0.000001 )

麻烦的是,小量一般比人们通常会选择[2.22e-16我的机器上]的值小,实际上是很简单的计算:

$macheps = (float) 1.0;  
do {
    $macheps /= (float) 2.0;
} while( (float) (1.0 + ($macheps/2.0)) != 1.0 );
printf("Epsilon: %0.25f\n", $macheps);
Run Code Online (Sandbox Code Playgroud)

C ++有std::numeric_limits<double>::epsilon(),Python有sys.float_info.epsilon,那么为什么PHP悬而未决呢?

php floating-point epsilon

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

禁用特定的 Symfony 路由

长话短说:我正在为我的公司设置一个私人 Packagist 站点,我需要禁用用户注册 [用户由 Chef 创建],同时仍然允许 Github OAuth 连接。

我通过在以下路径中添加以下不可满足的条件来禁用常规注册页面routing.yml

fos_user_register:
    resource: '@FOSUserBundle/Resources/config/routing/registration.xml'
    prefix: /register
    condition: "1 == 0"
Run Code Online (Sandbox Code Playgroud)

但是我发现,如果您在没有先连接现有帐户的情况下尝试使用 Github 登录,那么下面会出现第二个注册表单,该注册表单由以下/connect/registration路由管理:

hwi_oauth_connect:
    resource: '@HWIOAuthBundle/Resources/config/routing/connect.xml'
    prefix:   /connect
Run Code Online (Sandbox Code Playgroud)

routing.yml,并且:

<route id="hwi_oauth_connect_registration" path="/registration/{key}">
    <default key="_controller">HWIOAuthBundle:Connect:registration</default>
</route>
Run Code Online (Sandbox Code Playgroud)

这是在vendor/hwi/oauth-bundle/Resources/config/routing/connect.xml.

如何仅禁用/connect/registration而不修改connect.xml供应商文件夹中的 ?

php symfony

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

无法获取管理员工作的静态文件

就像标题所说,404s所有内容:

Page not found (404)
Request Method:     GET
Request URL:    http://localhost/static/admin/css/base.css

Using the URLconf defined in djcms.urls, Django tried these URL patterns, in this order:

    ^admin/

The current URL, static/admin/css/base.css, didn't match any of these.
Run Code Online (Sandbox Code Playgroud)

基本上我只是关注DjangoProject.com上的教程,所以除了Django之外没有什么比这更复杂的了.

我的文件夹结构如下:

root@jerkstore:/var/www/djcms# ls -lsa
total 36
4 drwxrwxr-x  6 myusername myusername 4096 Jul 11 11:49 .
4 drwxr-xr-x 10 myusername www-data  4096 Jul 10 16:34 ..
4 drwxrwxr-x  5 myusername myusername 4096 Jul 11 11:40 admin
4 drwxrwxr-x  2 myusername myusername 4096 Jul 11 …
Run Code Online (Sandbox Code Playgroud)

python apache django mod-wsgi

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

OpenSSL错误:EVP_DecryptFinal_ex:错误的最终块长度

我回过头来看一些代码[包含在这篇文章的底部],我之前写过一些加密,我遇到了一个我无法找到解决方法的错误.每当我尝试解密我的数据时,我都会从OpenSSL中收到以下错误:

error:0606506D:digital envelope routines:EVP_DecryptFinal_ex:wrong final block length
Run Code Online (Sandbox Code Playgroud)

我的加密功能的输出是:

$AES-256-CBC$SHA256$kJ+DIShnFOs0cGsDiVnXXMdBj1GoLYywrhz+lv3W/dk=
Run Code Online (Sandbox Code Playgroud)

原始的加密数据是:

00000000  90 9f 83 21 28 67 14 eb  34 70 6b 03 89 59 d7 5c  |...!(g..4pk..Y.\|
00000010  c7 41 8f 51 a8 2d 8c b0  ae 1c fe 96 fd d6 fd d9  |.A.Q.-..........|
Run Code Online (Sandbox Code Playgroud)

我的IV是:

00000000  d7 4f f0 ee 8d a3 b9 80  6b 18 c8 77 db f2 9b bd  |.O......k..w....|
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚这里出了什么问题.我可以谷歌的大多数归结为"你没有从数据的开头删除IV",但它从来没有在第一位.

码:

Class MyEncrypt {

private $method, $iv_size, $hashfunc;

public function __construct($method='AES-256-CBC', $hashfunc='SHA512') {
    if( …
Run Code Online (Sandbox Code Playgroud)

php encryption openssl

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

UDP套接字状态列表?

我目前正在写一个脚本中提取数据/proc/net/tcp,并/proc/net/udp和我需要的连接状态从他们的十六进制代码转换成有意义的事.

示例内容:

  sl  local_address rem_address   st tx_queue rx_queue tr tm->when retrnsmt   uid  timeout inode ref pointer drops
  37: 00000000:2710 00000000:0000 07 00000000:00000000 00:00000000 00000000     0        0 862948 2 ffff8800109dbac0 0
  54: 00000000:00A1 00000000:0000 07 00000000:00000000 00:00000000 00000000     0        0 2055110 2 ffff8800109db780 0
Run Code Online (Sandbox Code Playgroud)

到目前为止,我已经找到了这个答案,它向我指出了相关的内核头文件,但是没有匹配udp_states.h或任何内容udp.hip.h.

在哪里可以找到UDP套接字的连接状态列表?

sockets linux ip udp linux-kernel

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

正确的GROUP BY语法

我对mySQL和MSSQL非常熟练,但我刚开始使用postgres.我确信这是一个简单的问题,所以要简短一点:

SQL error:

ERROR:  column "incidents.open_date" must appear in the GROUP BY clause or be used in an aggregate function

In statement:
SELECT date(open_date), COUNT(*)
FROM incidents
GROUP BY 1
ORDER BY open_date
Run Code Online (Sandbox Code Playgroud)

类型open_datetimestamp with time zone,如果我使用,我得到相同的结果GROUP BY date(open_date).

我试过在网上搜索postgres文档和一些例子,但似乎所有内容都表明这应该是有效的.

postgresql

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

如何正确编写MySQL列类型varchar(1000)中的文本?

我在MySQL DB中有一个列VARCHAR(1000).因此,当PHP请求插入超过1000个符号时,其余文本将被拒绝.

在我放置了一个textareawith 的网站上maxlength=1000,但在服务器端,PHP解析提交的文本与htmlspecialchars函数,所以如果文本是it's called "nothing",它就变成了it's called &quot;nothing&quot;.

问题是文本可能会变成超过1000个符号,即使它输入的字符很清楚1000个字符.

你能帮我找到正确的方法,正确的功能等来插入用户输入的所有字符吗?

php mysql sql varchar

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

限制HTTP动词而不进行冗余配置

我有一个Elasticsearch集群加上Logstash和Kibana,我只想在索引中公开一个只读窗口,但索引除外,kibana-int这样就可以保存仪表板.

我找到了一个合适的ES代理配置,并且我已将其修改为用于limit_except禁止对其他索引进行写入/修改,但是大部分配置都是不必要的重复.有更清晰的方法来定义它吗?

upstream elasticsearch {
    server es-01.iad.company.com:9200;
    server es-02.iad.company.com:9200;
}

server {
    listen 9200;
    server_name elasticsearch.proxy;
    client_max_body_size 50m;

    location / {
        limit_except GET POST HEAD OPTIONS {
            deny all;
        }
        proxy_pass http://elasticsearch;
        proxy_redirect off;
        proxy_set_header Connection "";
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_pass_header Access-Control-Allow-Origin;
        proxy_pass_header Access-Control-Allow-Methods;
        proxy_hide_header Access-Control-Allow-Headers;
        add_header Access-Control-Allow-Headers 'X-Requested-With, Content-Type';
        add_header Access-Control-Allow-Credentials true;
    }
    location /kibana-int/ {
        proxy_pass http://elasticsearch;
        proxy_redirect off;
        proxy_set_header Connection "";
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; …
Run Code Online (Sandbox Code Playgroud)

nginx

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