小编Zer*_*tor的帖子

用户可以编辑页面源,操纵隐藏的字段值,然后使用这些值发布表单吗?

在各种网站上,您经常在页面源中看到表单上的一些隐藏值(通常持有某种常量,键,ID等).就像是:

<input type="hidden" name="_submit_check" value="1">
Run Code Online (Sandbox Code Playgroud)

我假设这个网站是双重检查表单是通过检查_submit_checks值为1发布的.是否可以编辑源并将其更改为0,然后发布数据,从而使表单无法发布服务器端?

这个例子对服务器来说不是很危险,因为它会忽略请求,但使用隐藏字段是否存在任何可能的安全风险(除了明显的:他们仍然可以读取源中的值,我更担心如果他们可以编辑它).

html

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

在接口中使用泛型时无法转换/匹配类型,为什么?

在IMyMessage.cs中

public interface IMyMessage
{
}
Run Code Online (Sandbox Code Playgroud)

在IMyMessageReceiver.cs中

public interface IMyMessageReceiver<T> where T: IMyMessage
{
    void HandleMessage(T message);
    void Subscribe();
}
Run Code Online (Sandbox Code Playgroud)

在MyMessagePublisher.cs中

public static class MyMessagePublisher
{
    private static Dictionary<Type, List<IMyMessageReceiver<IMyMessage>>> _subscribers;

    static MyMessagePublisher
    {
         _subscribers = new Dictionary<Type, List<IMyMessageReceiver<IMyMessage>>>();
    }

    public static function Subscribe<T>(IMyMessageReceiver<T> receiver) where T: IMyMessage
    {
        Type messageType = typeof (T);
        List<IMyMessageReceiver<IMyMessage>> listeners;

        if(!_subscribers.TryGetValue(messageType, out listeners))
        {
             // no list found, so create it
             List<IMyMessageReceiver<T>> newListeners = new List<IMyMessageReceiver<T>>();
             // ERROR HERE: Can't convert List<IMyMessageReceiver<T>> to List<IMyMessageReceiver<IMyMessage>> …
Run Code Online (Sandbox Code Playgroud)

c# generics types casting

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

标签 统计

c# ×1

casting ×1

generics ×1

html ×1

types ×1