小编MyM*_*ial的帖子

反应前端和REST API,CSRF

使用REST API作为后端,由JWT授权反应前端,但如何处理会话?例如,登录后我从REST获取JWT令牌,如果我将其保存到localStorage,我很容易受到XSS的攻击,如果我将其保存到Cookies,只有在没有设置HttpOnly时才会出现同样的问题,但是反应无法读取HttpOnly Cookies(我需要)读取cookie以从中获取JWT,并将此JWT用于休息请求),我也没有提到CSRF问题,如果使用REST作为后端,则不能使用CSRF令牌.

因此,使用REST的React似乎是糟糕的解决方案,我需要重新思考我的架构,如何成为?是否有可能为您的用户提供安全的响应应用程序,哪些业务逻辑在REST API端处理,而不必担心丢失数据?

更新:

据我所知,有可能这样做:

  1. React对REST API进行AJAX调用
  2. React从REST获取JWT令牌
  3. React写了httponly cookie
  4. 因为react不能读取httponly cookie,所以我们在需要身份验证的所有REST调用中都按原样使用它
  5. REST调用检查XMLHttpRequest头,什么是CSRF保护
  6. REST端检查cookie,从中读取JWT并执行操作

我有缺乏理论知识在这里,但看起来逻辑和相当安全的,但我仍然需要回答我的问题,并批准该"工作流"的.

api cookies rest csrf reactjs

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

Sass,Compass和JavaScript

无法找到有关使用Compass的JavaScript使用情况的信息,在配置中我找到了"javascript_dir"选项,但不知道如何使用它.有人可以解释一下这个选项是什么,以及如何将它与.scss文件一起使用?

javascript sass compass-sass

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

Sass,Compass,将所有CSS文件编译为一个

现在,在我开发项目时,我有三个文件,"main.css","about.css"和"news.css"(例如).有可能将它们编译成一个"final.css"用于生产吗?

sass compass-sass

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

在测试执行期间隐藏输出

我的php代码中有一些var_dump(我知道最后一定没有,但仍然是),并且在测试运行时它们向控制台输出非必要的信息,有没有一种方法可以忽略一些代码执行?

我试过了

/**
 * @codeCoverageIgnore
 */
Run Code Online (Sandbox Code Playgroud)

// @codeCoverageIgnoreStart
print '*';
// @codeCoverageIgnoreEnd
Run Code Online (Sandbox Code Playgroud)

但这只是忽略了覆盖范围,仍然执行代码.

php testing phpunit

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

Node.js需要带有构造函数参数的类

我上课了

class advertHandler {
    constructor(projects) {
        this.projects = projects;
    }

    getProject(name) {
        return this.projects[name];
    }
}


module.exports = new advertHandler(projects);
Run Code Online (Sandbox Code Playgroud)

当我尝试像这样使用它

const advertHandler = require('./advertHandler')(projectsArray);
advertHandler.getProject('test');
Run Code Online (Sandbox Code Playgroud)

并抛出一个异常,require is not a function但没有构造函数,一切都很好,所以问题是如何使用带有require的类构造函数?

javascript node.js

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

MySQL按current_timestamp选择上个月的数据

直到今天,当我使用MySQL并且需要执行日期/时间的操作时我使用带有unix时间戳的int列并且没有问题,但是今天在阅读了一些指南之后我决定默认使用"current_timestamp"测试时间戳列.

所以我感兴趣的是如何按列选择上个月的数据,其中信息是"2012-09-07 00:23:30"格式?也许有一些棘手的问题会从本月初开始给我数据(不是过去30天,而是从09-01 00:00:00到今天)?

mysql timestamp

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

Sass/Compass不删除旧精灵

我正在使用SASS + Compass进行精灵生成问题是当我使用原始配置时,指南针在生成新的sprite之后删除了旧版本的精灵,但如果我添加此行

generated_images_dir = "generated_images" 
Run Code Online (Sandbox Code Playgroud)

为了配置,罗盘只是生成新的精灵,而不是删除旧精灵.

http_path = "/"
css_dir = "stylesheets"

sass_dir = "sass"
images_dir = "images"
javascripts_dir = "javascripts"

# generated_images_dir = "generated_images"
generated_images_path = "generated_images"
Run Code Online (Sandbox Code Playgroud)

css sass

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

PHP数组唯一值

我有这样的数组

Array
(
    [0] => Array
        (
            [id] => BA
            [name] => British Airways
        )

    [1] => Array
        (
            [id] => BA
            [name] => British Airways
        )

    [2] => Array
        (
            [id] => LA
            [name] => Lanchile
        )

    [3] => Array
        (
            [id] => LA
            [name] => Lanchile
        )

    [4] => Array
        (
            [id] => BA
            [name] => British Airways
        )

    [5] => Array
        (
            [id] => BA
            [name] => British Airways
        )

)
Run Code Online (Sandbox Code Playgroud)

而且我想得到

Array
(
    [0] => Array …
Run Code Online (Sandbox Code Playgroud)

php arrays array-unique

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

空字符串加倍C#

此刻我正试图从文本框中获取双倍值,如下所示:

String.IsNullOrEmpty(textBox1.Text) ? 0.0 : Double.Parse(textBox1.Text)
Run Code Online (Sandbox Code Playgroud)

但是有一个问题,我无法解决如何解析空文本框?

例如,如果使用OleDb和Excel使用空文本框尝试此代码,我们将收到错误

System.FormatException:输入字符串的格式不正确.

c# double

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

使用引号保存到MySQL序列化信息

试图将序列化的字符串保存到SQL,但后来我因为引号而无法将其反序列化.

例如,字符串是"te'st",序列化后我们有

s:5:"te'st";
Run Code Online (Sandbox Code Playgroud)

但要将其保存到SQL,我们需要添加斜杠,而我正在做

serialize(addslashes($string))
Run Code Online (Sandbox Code Playgroud)

在此之后,在我们的MySQL数据库中我们有

s:6:"te'st";
Run Code Online (Sandbox Code Playgroud)

这就是问题所在.s:6表示我们有6个符号字符串,但我们的"te'st"只有5,所以当我们尝试反序列化时,我们会收到错误.

怎么解决?尝试了htmlspecialcharsmysql_real_escape_string

更新:

我如何使用mysql_real_escape_string

 mysql_query("INSERT INTO `table`(`string`) VALUES ('" . serialize(array('iId' =>$aSqlResult['typeID'], 'sName' => mysql_real_escape_string($sScanResultLine))) . "')");
Run Code Online (Sandbox Code Playgroud)

php mysql quotes serialization

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