小编ove*_*dow的帖子

直接使用window.location.href是否安全,无需验证

在没有任何验证的情况下使用window.location.href是否安全?

例如:

<script>
    var value = window.location.href;
    alert(value);
</script>
Run Code Online (Sandbox Code Playgroud)

从上面的例子来看,它是否容易受到跨站点脚本(XSS)攻击?如果是,那怎么样?攻击者如何将window.location.href的值修改为恶意内容?

编辑(第二种情况)

这是网址:www.example.com?url = www.attack.com

假设我有一个getQueryString()函数,它将在没有验证的情况下返回值.

<script> 
    var value = getQueryString('url'); 
    window.location.href = value; 
</script>
Run Code Online (Sandbox Code Playgroud)

同样的问题,它是否容易受到跨站点脚本(XSS)攻击?如果是,那怎么样?攻击者如何才能使用"window.location.href = value"来执行XSS?

javascript security xss href window.location

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

如何在Symfony2 Twig模板中调用静态函数

如何在不通过控制器的情况下在树枝模板中调用我的静态函数?

例如:

...
{{ MyStaticClass::getData() }}
...
Run Code Online (Sandbox Code Playgroud)

我的静态课程:

class MyStaticClass {
    const v1 = 'Value1';
    const v2 = 'Value2';
    ...

    public static function getData() {
        ...

        return $data;
    }
}
Run Code Online (Sandbox Code Playgroud)

php static symfony twig

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

脚本完成后,Node JS sequelize 不会自动关闭

我的数据库连接设计与 sequelize.js 面临一些问题。我想要实现的是为我的应用程序数据库连接建立一个集中的连接和配置文件。因此,我创建了一个文件名 database.js,如下所示。

const Sequelize = require("sequelize");
const dbConfig = require("../../config/database.json");

const db = {};

sequelize = new Sequelize({
  dialect: dbConfig.dialect,
  database: dbConfig.database,
  username: dbConfig.username,
  password: dbConfig.password,
  host: dbConfig.host,
  port: dbConfig.port,
  operatorsAliases: false,
  logging: false,

  pool: {
    max: 5,
    min: 0,
    acquire: 30000,
    idle: 10000
  }
});

db.Sequelize = Sequelize;
db.sequelize = sequelize;

module.exports = db;
Run Code Online (Sandbox Code Playgroud)

如果有任何脚本要使用数据库,我只需要需要 database.js 文件。但是,当我的脚本完成时出现问题,由于续集连接未关闭,进程没有退出(终端挂在那里)。

我试图在 finally 块上调用close函数,但这导致其他查询脚本不起作用(如果我在每个查询块上调用它),因为它们共享同一时刻。第一个查询完成后,连接将关闭。

sequelize
  .query("SELECT * FROM users WHERE id = ?", {
    replacements: [userId],
    type: sequelize.QueryTypes.SELECT,
    model: …
Run Code Online (Sandbox Code Playgroud)

node.js sequelize.js

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

如何在c#中构建一组常量变量

如何在c#中构建一组常量变量?

例如 :

IconType {
    public constant string folder = "FOLDER";
    public constant string application = "APPLICATION";
    public constant string system = "SYSTEM";
}
Run Code Online (Sandbox Code Playgroud)

然后我需要像这样使用IconType.system,但我不想做像IconType type = new IconType()这样的声明,我想方向访问它的变量.

它看起来像java中的JOptionPanel,当我想显示图标时我只需要调用这个JOptionPane.WARNING_MESSAGE

c#

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

Symfony:服务容器VS静态方法

我们以此为例,我在Validator类中调用了validateDateTime方法.此功能非常简单,可以检查日期时间是否为所需格式.

namespace MyApp\Util;

use \DateTime;

class Validator {
    public static function validateDateTime($dateTime, $format = 'Y-m-d') {
        $d = DateTime::createFromFormat($format, $dateTime);
        return $d && $d->format($format) == $dateTime;
    } 
}
Run Code Online (Sandbox Code Playgroud)

在我学习Symfony之前,如果必须在整个应用程序中共享函数,我总是使用静态方法来简化函数的使用.

在我学习了Symfony之后,我知道Symfony有一个非常强大的功能,它是服务容器,可以同样方便地访问将在整个应用程序中使用的功能.

我的问题是:

  1. 使用静态方法与服务容器的优缺点是什么?
  2. 在Symfony最佳实践中,如果我想达到相同的目的(在整个应用程序中共享的功能),建议使用静态方法的服务容器.
  3. 在什么情况下,何时以及为什么,我们需要使用静态方法

非常感谢您的评论和意见.

php service static-methods symfony

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

以编程方式绑定数据源 c# 时,组合框选定事件自动触发

我这里有一个愚蠢的问题,但我无法解决它。问题是当我以编程方式将组合框与数据绑定时,它会自动设置 selectedItem 但我使用属性字段添加项目时它不会设置 selectedItem。

我的问题是如何在不触发 selected 事件的情况下以编程方式绑定项目(意味着它的行为类似于使用默认情况下不设置 selectedItem 的属性进行绑定)?提前致谢。

以编程方式设置的示例

string[] items = {"Apple", "Orange", "Banana"}; comboBox1.DataSource = 项目;

当程序运行时,它看起来像这样(默认值为 Apple):

在此处输入图片说明

使用属性字段的示例集项目 (VS 2013)

在此处输入图片说明

然后它看起来像这样(未选择默认值):

在此处输入图片说明

c# combobox

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

Symfony2插入错误"警告:spl_object_hash()需要参数..."

当我尝试持久化我的对象并刷新它时,我收到以下错误消息:

警告:spl_object_hash()期望参数1为对象,给定500内部服务器错误的整数 - ContextErrorException

我知道这种问题已经在堆栈溢出中发布了很多,但它仍然无法解决我的问题.这就是为什么我在这里再问一次,希望有人可以帮助我.

以下是我保留用户类的代码:

$package = $em->getRepository('MyBundle:Package')->findOneBy(array('id' => 1));
$new_user->addPackage($package);

$role = $em->getRepository('MyBundle:Role')->findOneBy(array('id' => 3));
$new_user->addRole($role);

$new_user->setCmsPrize(2); //int
$new_user->setCmsBet(3); //int
$new_user->setName("new user");
$new_user->setUserName("test123");
$new_user->setPassword("abc");
$new_user->setCreditLimit(1000);
$new_user->setCreditBalance(2000);
$new_user->setSelectedPackage($currentuser->getSelectedPackage());
$new_user->setParentId($currentuser->getId());
$new_user->setLayer($currentuser->getLayer() + 1);
$em->persist($new_user);
$em->flush();
Run Code Online (Sandbox Code Playgroud)

以下是我的用户类:

/**
 * MyBundle\Entity\User
 *
 * @ORM\Table(name="")
 * @ORM\Entity(repositoryClass="MyBundle\Entity\UserRepository")
 */
class User implements AdvancedUserInterface, \Serializable {

    /**
     * @ORM\Column(type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

    /**
     * @ORM\Column(type="string", length=25, unique=true)
     */
    private $username;

    /**
     * @ORM\Column(type="string", length=64, options={"fixed" = true}))
     */
    private $password;

    /** …
Run Code Online (Sandbox Code Playgroud)

php doctrine symfony doctrine-orm

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