小编Isa*_*sca的帖子

如何在Symfony3上为AJAX调用添加CSRF保护?

我正在开发一个网站,你可以"添加朋友"另一个用户,比如facebook.现在,我放了一个链接,当你点击它时,就完成了一个AJAX调用.

在坚持新的友谊之前,我检查请求是否是Ajax,但我想进一步增加安全性.一个页面可以有超过10个链接(posible请求),所以...我不知道我是否只需要一个令牌,或每个链接一个令牌.

另一个疑问是....如何使用Symfony生成令牌并检查是否有效?重点关注如何在初始控制器上生成令牌,然后,如何在addFriend控制器(接收ajax调用)上进行验证.

我试图用它来生成一个令牌:

http://api.symfony.com/3.1/Symfony/Component/Security/Csrf/TokenGenerator/TokenGeneratorInterface.html

然后这要检查令牌:

https://symfony.com/doc/current/controller/csrf_token_validation.html

但总是返回该令牌是不是有效.

php ajax jquery csrf symfony

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

如何向 PDF.js 查看器添加 UI 和工具栏?

我正在尝试在我的项目中实现 PDF.js,但它比预期的要困难。

目前,我可以在 div 内渲染整个 PDF,但无法渲染标准工具栏查看器;您可以在此演示页面顶部看到我想要的示例: https: //mozilla.github.io/pdf.js/web/viewer.html

我的 JS 代码现在看起来像这样:

var url = '/filemanager/example.pdf';
var pdfScale = 1;
PDFJS.workerSrc = '/js/pdfJs/build/pdf.worker.js';

function renderPDF(url, canvasContainer, options) {
    var options = options || { scale: pdfScale };

    function renderPage(page) {
        var viewport = page.getViewport(options.scale);
        var canvas = document.createElement('canvas');
        var ctx = canvas.getContext('2d');
        var renderContext = {
            canvasContext: ctx,
            viewport: viewport
        };

        canvas.height = viewport.height;
        canvas.width = viewport.width;
        canvasContainer.appendChild(canvas);

        page.render(renderContext);
    }

    function renderPages(pdfDoc) {
        for(var num = 1; num <= pdfDoc.numPages; num++) …
Run Code Online (Sandbox Code Playgroud)

html javascript pdf pdf.js pdfjs-dist

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

Android:为什么在NestedScrollView内部的RecyclerView底部有一个空白区域?

使用RecyclerViewinside 会在NestedScrollView中创建一个奇怪的空白空间(如底部填充)activity,导致不必要的滚动,因为没有更多元素要显示。

这个填充随着 增长RecyclerView,我的意思是:

如果其中RecyclerView有 0 到 2 个元素,这在屏幕上非常适合,并且没有滚动。这里运作良好。

如果RecyclerView有 3 到 5 个元素,这些元素继续适合屏幕,但在这种情况下会有更多的空白空间导致不必要的滚动。

随着更多元素,空白空间继续增长并产生越来越多的滚动。

这是我的 XML:

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.ibosca.thub.ChannelProfileActivity">

<android.support.v4.widget.NestedScrollView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fillViewport="true">

    <android.support.constraint.ConstraintLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">


        <de.hdodenhof.circleimageview.CircleImageView xmlns:app="http://schemas.android.com/apk/res-auto"
            android:id="@+id/channelPicture"
            android:layout_width="90dp"
            android:layout_height="90dp"
            android:layout_marginBottom="8dp"
            android:layout_marginEnd="8dp"
            android:layout_marginStart="8dp"
            android:layout_marginTop="8dp"
            app:civ_border_color="#FF000000"
            app:civ_border_width="2dp"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintHorizontal_bias="0.0"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintVertical_bias="0.0" />

        <TextView
            android:id="@+id/channelName"
            android:layout_width="256dp"
            android:layout_height="90dp"
            android:layout_marginBottom="8dp"
            android:layout_marginEnd="16dp"
            android:layout_marginStart="8dp"
            android:layout_marginTop="8dp"
            android:gravity="center_vertical"
            android:paddingLeft="10dp"
            android:paddingRight="10dp"
            android:textAlignment="center"
            android:textColor="@android:color/black"
            android:textSize="20sp"
            android:textStyle="bold"
            app:layout_constraintBottom_toBottomOf="parent" …
Run Code Online (Sandbox Code Playgroud)

android android-layout android-recyclerview android-nestedscrollview

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

将MacOS更新为Mojave后,PECL扩展安装失败(10.14)

我用我的Mac开发了三个项目:Android应用程序,iPhone应用程序和Symfony项目.

我的Symfony项目使用Redis和APCu扩展.这是通过PECL安装(6个月前),使用:

sudo pecl install redis
Run Code Online (Sandbox Code Playgroud)

sudo pecl install apcu
Run Code Online (Sandbox Code Playgroud)

昨天,在将我的mac更新为Mojave,并尝试像往常一样启动我的PHP的内置Web服务器之后,我收到以下错误:

尝试从全局命名空间加载类"Redis".你忘记了"使用"声明吗?

我也注意到php.ini在安装过程中被删除了,所以我用php.ini-previousphp.ini再次生成了.

还重新安装了命令行工具(在安装过程中删除):

xcode-select --install
Run Code Online (Sandbox Code Playgroud)

最后,我尝试再次通过PECL安装redis extenison:

sudo pecl install redis
Run Code Online (Sandbox Code Playgroud)

这次PECL抛出一个错误:

creating libtool
appending configuration tag "CXX" to libtool
configure: creating ./config.status
config.status: creating config.h
running: make
/bin/sh /private/tmp/pear/temp/pear-build-root1vQ0zO/redis-4.1.1/libtool --mode=compile cc  -I. -I/private/tmp/pear/temp/redis -DPHP_ATOM_INC -I/private/tmp/pear/temp/pear-build-root1vQ0zO/redis-4.1.1/include -I/private/tmp/pear/temp/pear-build-root1vQ0zO/redis-4.1.1/main -I/private/tmp/pear/temp/redis -I/usr/include/php -I/usr/include/php/main -I/usr/include/php/TSRM -I/usr/include/php/Zend -I/usr/include/php/ext -I/usr/include/php/ext/date/lib  -DHAVE_CONFIG_H  -g -O2   -c /private/tmp/pear/temp/redis/redis.c -o redis.lo
mkdir .libs
cc -I. -I/private/tmp/pear/temp/redis -DPHP_ATOM_INC -I/private/tmp/pear/temp/pear-build-root1vQ0zO/redis-4.1.1/include -I/private/tmp/pear/temp/pear-build-root1vQ0zO/redis-4.1.1/main -I/private/tmp/pear/temp/redis -I/usr/include/php -I/usr/include/php/main …
Run Code Online (Sandbox Code Playgroud)

php pear pecl symfony macos-mojave

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

Symfony3 上的每个请求中在 Controller 之前执行一些代码

我需要在执行 Symfony 3 控制器之前执行一些代码。

我阅读了本指南:http://symfony.com/doc/current/event_dispatcher/before_after_filters.html解释了如何操作。

但在这一点上: http://symfony.com/doc/current/event_dispatcher/before_after_filters.html#tag-controllers-to-be-checked文档解释说,我们需要指定每个控制器将受到此EventListener影响的控制器implements TokenAuthenticatedController我们需要控制器,但由于我想在每个implements控制器(全部)之前执行代码,我希望存在某种方法来做到这一点,而无需在所有控制器上添加。

event-listener symfony

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

切换条件在零上评估错误

我正在尝试这样的代码:

$event = 0;

switch ($event) {
    case 'content':
        echo "/content";
        break;
    case 'start':
        echo "/start";
        break;
    default :
        echo "not available";
        break;
}
Run Code Online (Sandbox Code Playgroud)

此代码/content在执行时打印,因此... 0(零,整数,分配给$ event变量)被评估为'content'.为什么?

php switch-statement

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