小编str*_*ger的帖子

你只在输出上运行htmlspecialchars()还是你还有其他功能?

输出用户输入时,您是否只使用htmlspecialchars()或是否还有运行的功能/操作/方法?我正在寻找能够处理XSS的东西.

我想知道我是否应该编写一个在输出时转义用户输入或只是使用的函数htmlspecialchars().我正在寻找通用案例,而不是可以单独处理的具体案例.

php xss escaping htmlspecialchars

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

如何设计具有基类中不可用功能的子类?

例如,假设我有一个类Vehicle,我希望有一个子类ConvertibleVehicle,它有额外的方法,如foldRoof(),turboMode(),foldFrontSeats()等.我希望实例化如下

Vehicle convertible = new ConvertibleVehicle()
Run Code Online (Sandbox Code Playgroud)

所以我仍然可以访问常见的方法,如openDoor(),startEngine()等.我如何设计这样的解决方案?

为了澄清我的两个初始解决方案,我不满意的是:

  1. 有虚拟方法foldRoof(),turboMode(),foldFrontSeats()我只在ConvertibleVehicle中重写,让他们在其他子类中什么也不做
  2. 有抽象方法foldRoof(),turboMode(),foldFrontSeats()并强制每个子类提供一个实现,即使它在ConvertibleVehicle以外的所有实例中都是空白的

上面看起来有点复杂,因为它们都污染了基类,因为我添加了越来越多的子类,每个子类都有自己独特的功能

在阅读了一些回复之后,我的设计中可能存在某种类型的根本缺陷.假设我有一个类VehicleFleet,它接收车辆并指示他们驾驶如下:

public VehicleFleet(Vehicle[] myVehicles) {

    for (int i=0; i < myVehicles.length; i++) {
        myVehicles[i].drive();
    }
}
Run Code Online (Sandbox Code Playgroud)

假设这适用于车辆的几十个子类,但对于ConvertibleVehicle,我也想在驾驶之前折叠车顶.为此,我将VehicleFleet子类化如下:

public ConvertibleVehicleFleet(Vehicle[] myVehicles) {

    for (int i=0; i < myVehicles.length; i++) {
        myVehicles[i].foldRoof();
        myVehicles[i].drive();
    }
}
Run Code Online (Sandbox Code Playgroud)

这让我有一个凌乱的函数foldRoof()卡在基类中,它不属于真正属于哪个,只有在ConvertibleVehicle的情况下才会被覆盖,并且在所有其他情况下都不会执行任何操作.解决方案有效,但似乎非常不优雅.这个问题是否适合更好的架构?

我正在使用Java虽然我希望找到一个可以在任何面向对象语言中工作的通用解决方案,并且我不需要依赖语言特定的怪癖

java oop

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

将对象上的事件路由到另一个对象

我希望将目标origTarget上发生的所有事件路由/重定向到另一个对象otherObject.我想完成这样的事情:

/* Magic binding (doesn't work!). */
$(origTarget).bind('*', function(e) {
    $(otherObject).trigger(e);
});
Run Code Online (Sandbox Code Playgroud)

这是否可以使用jQuery而不循环遍历每个可能的事件类型?

这个例子应该以'hello'警告:

var origTarget = { };
var otherObject = { };

/* Do magic binding here. */

$(otherObject).bind('alert', function() {
    alert('hello');
});

$(origTarget).trigger('alert');
Run Code Online (Sandbox Code Playgroud)

javascript jquery events

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

什么可以实例化?

可以实例化C++中的哪些类型?

我知道以下每个都直接创建一个单独的实例Foo:

Foo bar;
Foo *bizz = new Foo();
Run Code Online (Sandbox Code Playgroud)

但是,内置类型怎么样?下面是否创建了两个实例int,或者实例是要使用的错误单词和内存正在被分配?

int bar2;
int *bizz2 = new int;
Run Code Online (Sandbox Code Playgroud)

指针怎么样?以上示例是否创建了一个int *实例,或者只是为一个int *?分配内存?

会使用文字喜欢42还是3.14创建一个实例?

我已经看到了这样的论点:如果你不能对一个类进行子类化,那么它就不是一个类,如果它不是一个类,它就不能被实例化.这是真的?

c++ oop

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

PRNG,周期可调

我需要构建一个可调周期的就地伪随机数生成器。此外,一个时期内不得有任何碰撞。也就是说,以下必须返回true:

// prng is "generated" at run-time
// (though a by-hand solution would work)

bool test(func prng, int period) {
    int seed = 0;  // Any number should work
    int cur = seed;

    for (int i = 0; i <= period; ++i) {
        cur = prng(cur);

        if (cur == seed) {
            if (i == period) {
                // We hit our period on target
                return true;
            }

            // Period too low (we hit our seed already!)
            return false;
        }
    }

    // …
Run Code Online (Sandbox Code Playgroud)

language-agnostic random

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

JavaScript和SEO.我该如何调和它们?

根据一些SEO专家和渐进增强(PE)等理论,即使禁用JS,页面内容也应适当地呈现给用户.我完全同意这一点.

这是我的情况,在我们客户的"关于我们"页面上,有一个div列出了他们公司的活动.由于空间和其他考虑因素,他们使用JS和CSS元素隐藏了一些事件列表display:none.

到目前为止,有两件事真的吓到我了.

  • 一,CSS元素 - display:none.我的经验告诉我,这在SEO方面非常可怕.
  • 二,禁用JavaScript.禁用我的浏览器的JavaScript,我根本看不到隐藏的事件列表.显然没有JS,学习更多标签是无效的.这种情况肯定会违背PE理论和SEO专家的警告.

除了这两件吓人的事情,我也有一个困惑.

我使用谷歌网站主工具来获取此页面,它显示了所有隐藏事件列表.如果Google机器人在禁用JS的情况下使用我的网站,它怎么能获取这些隐藏内容?或者如果它能够获取那些隐藏的内容,是否意味着PE理论已经过时而且那些专家是错的?

我现在应该怎么做?感谢您的时间.

javascript css seo

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

c#将struct转换为另一个struct

有什么办法,如何转换这个:

namespace Library
{
    public struct Content
    {
        int a;
        int b;
    }
}
Run Code Online (Sandbox Code Playgroud)

我在Library2.Content中有结构,其数据定义方式相同({ int a; int b; }),但方法不同.

有没有办法将struct实例从Library.Content转换为Library2.Content?就像是:

Library.Content c1 = new Library.Content(10, 11);
Library2.Content c2 = (Libary2.Content)(c1); //this doesn't work
Run Code Online (Sandbox Code Playgroud)

c# struct

5
推荐指数
3
解决办法
7609
查看次数

向任何TextReader添加功能

我有一个Location表示流中某个位置的类.(该类未与任何特定流耦合.)位置信息将用于将令牌与我的解析器中的输入中的位置匹配,以允许向用户报告更好的错误.

我想将位置跟踪添加到TextReader实例.这样,在读取令牌时,我可以获取位置(由TextReader读取的数据更新)并在令牌化过程中将其提供给令牌.

我正在寻找一个实现这一目标的好方法.我想出了几个设计.

手动位置跟踪

每次我需要读取时TextReader,我都会使用读取的数据调用tokenizer AdvanceStringLocation对象.

好处

  • 非常简单.
  • 没有阶级臃肿.
  • 无需重写TextReader方法.

缺点

  • 将位置跟踪逻辑耦合到标记化过程.
  • 容易忘记跟踪某些事情(虽然单元测试有助于此).
  • 膨胀现有代码.

普通TextReader包装纸

创建一个LocatedTextReaderWrapper围绕每个方法调用的类,跟踪Location属性.例:

public class LocatedTextReaderWrapper : TextReader {
    private TextReader source;

    public Location Location {
        get;
        set;
    }

    public LocatedTextReaderWrapper(TextReader source) :
        this(source, new Location()) {
    }

    public LocatedTextReaderWrapper(TextReader source, Location location) {
        this.Location = location;
        this.source = source;
    }

    public override int Read(char[] buffer, int index, …
Run Code Online (Sandbox Code Playgroud)

c# oop aop

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

PHP处理可能未设置的变量的最佳方法是什么?

我有一个foreach循环,它将遍历一个数组,但该数组可能不存在,具体取决于此特定应用程序的逻辑.

我的问题与我猜的最佳做法有关,例如,可以这样做:

if (isset($array))
{

    foreach($array as $something)
    {
        //do something
    }
}
Run Code Online (Sandbox Code Playgroud)

这对我来说似乎很混乱,但在这种情况下,如果我不这样做,它就会在foreach上出错.我应该传递一个空数组?我没有发布特定代码,因为它是关于处理可能设置或未设置的变量的一般问题.

php

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

在C++中读取不同格式的数据

我正在创建我的第一个真正的二进制解析器(一个tiff阅读器),并且有一个关于如何分配内存的问题.我想在我的TiffSpec类中为IFD条目创建一个结构.这些条目将始终为12个字节,但根据该特定条目中指定的类型,末尾的值可以是不同类型(或者可能只是文件中另一个位置的地址).如何铸造这类数据的最佳方法是什么?我认为我将要处理的最小内存将是1个字节.

c++ binary parsing

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

标签 统计

oop ×3

c# ×2

c++ ×2

javascript ×2

php ×2

aop ×1

binary ×1

css ×1

escaping ×1

events ×1

htmlspecialchars ×1

java ×1

jquery ×1

language-agnostic ×1

parsing ×1

random ×1

seo ×1

struct ×1

xss ×1