小编Hou*_*man的帖子

如何安全地向REST服务发送密码?

我正在使用Flask-Restful来构建REST服务.然后,iOS设备将连接到此REST后端以同步本地数据.

该服务将通过https连接访问.

REST服务是无状态的,用户必须对每个请求进行身份验证.因此,用户名和密码将以明文格式发送到REST服务.后端将散列密码并检查数据库中的现有散列密码.

api.add_resource(Records, '/rest/records/<string:email>/<string:password>/<string:ios_sync_timestamp>')
Run Code Online (Sandbox Code Playgroud)

现在我用这种方法看到的一个问题是用户名和密码是清晰的格式,作为GET网址的一部分.服务器日志显然会跟踪这个.现在,如果我的后端被黑客入侵,日志文件将损害所有用户名和密码.

这是什么最好的解决方案?我想也许可以发送用户名和密码作为POST参数,但是如何使用GET请求呢?

class Records(Resource):
    def get(self, email, password, ios_sync_timestamp):
        pass
    def post(self, email, password, ios_sync_timestamp):
        pass
Run Code Online (Sandbox Code Playgroud)

python rest flask flask-restful

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

由于Flask-WTF的CSRF保护,Flask-Restful POST失败

我正在使用普通烧瓶网+烧瓶 - 安静.所以我需要针对Web的CSRF保护,而不是REST.

那一刻我让CsrfProtect(app)flask-wtf,我所有的职位单元测试flask-restful返回400.

有没有办法为REST服务禁用CSRF保护,因为它们来自移动手机,无论如何都没有会话处理,因此CSRF没有多大意义.

这是我测试它的方式:

rv = self.client.post('api/v1.0/verify-email', environ_base={'REMOTE_ADDR': '127.0.0.1'}, headers={'Content-Type':'application/json'}, data=json.dumps(data))
self.check_content_type(rv.headers)
eq_(rv.status_code, 412)
Run Code Online (Sandbox Code Playgroud)

python rest flask flask-wtforms flask-restful

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

如何在现有控件上创建Dependency属性?

我已经阅读了几天的依赖属性,并了解它们如何检索值而不是像在CLR属性中那样设置/获取它们.如果我错了,请随意纠正我.

根据我的理解,从DependencyObject派生的所有WPF控件(如TextBlock,Button等)也将包含用于存储其值的依赖项属性,而不是使用CLR属性.这具有在使用动画时覆盖本地值的优点,或者如果根本没有设置本地值则继承值.

我现在正试图想出一些样本来创建和使用我自己的dp.

1)是否可以在现有的WPF控件上创建自己的依赖项属性?假设我想在WPF Textblock类上使用integer类型的依赖项属性?或者我是否必须创建一个派生自TextBlockBase的新类,以便在那里创建我的依赖属性?

2)在任何一种情况下,假设我在WPF文本块类上创建了一个依赖属性.现在我想通过将label的内容绑定到TextBlock的依赖属性来利用它.因此标签将始终显示TextBlock的dp的实际值,无论它是继承还是本地设置.

希望有人可以帮我解决这两个例子......非常感谢,Kave

.net wpf dependency-properties

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

从CodeBehind绑定到VM的RelayCommand

我想知道我是否可以像这样在我的ViewModel上创建一个RelayCommand:

public RelayCommand<IList<VectorViewModel>> MyCommand { get; set; }
Run Code Online (Sandbox Code Playgroud)

构造函数:

MyCommand = new RelayCommand<IList<VectorViewModel>>(DoSomething);
Run Code Online (Sandbox Code Playgroud)

从XAML背后的代码中,我从DataGrid中获取所选行并将它们放入List中.

if (xamDatagridVector.SelectedItems.Records.Count >= 3)
{
                var list = new List<VectorViewModel>();
                foreach (DataRecord record in xamDatagridVector.SelectedItems.Records)
                {
                    list.Add((VectorViewModel)record.DataItem);
                }
}
Run Code Online (Sandbox Code Playgroud)

在这个阶段,我想通过使用我之前创建的RelayCommand将List发送回ViewModel.是否可以在代码中创建一个RelayCommand并将其绑定到ViewModel的命令并将其关闭?

有什么替代方式?我当然可以在MVVM-Light中使用弱引用的Messenger类,但是我不喜欢的是它会将它发送给该调用的所有订阅者,而不仅仅是底层的ViewModel(当你有几个时它使用Messenger是致命的TabControls中相同View的实例)

我希望有人有想法让我继续前进,非常感谢,Kave

.net wpf mvvm relaycommand mvvm-light

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

面试问题:事件处理程序中的异常

1)您的.NET应用程序中有10个订阅者.一旦调用事件,订阅者是同步还是异步通知?

2)您的.NET应用程序中有10个订阅者.现在一个事件处理程序有一个错误的代码,它会抛出一个异常.其他九个事件处理程序是否还在继续?

谢谢,

.net c# events exception

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

如何从头开始创建一个快速的WPF Datagrid控件?

我过去一直在使用一些商业WPF数据网格,我必须说性能一直非常令人失望和缓慢.我希望能够加载多达一百万条记录,并能够快速向上和向下滚动,没有任何延迟.

一些Guru WPF开发人员告诉我,从头开始创建一个WPF Datagrid确实是可能的 - 功能远远少于商业版 - 主要关注性能.

但是我该怎么办呢?我被告知开发这些数据网格不应该以通常的方式使用ItemsControl构建,这会导致与现有wpf网格相同的性能问题.

这是一位大师指出我正确的方向吗?

更新:

因为一个人提到了需要一百万条记录的疑问,现在有太多人正在加入相同的行列.我感兴趣的是创建一个低延迟的快速数据网格,几乎没有任何功能,理论上可以保存多达一百万条记录.

我不需要任何排序,过滤,否则,我需要的只是速度.那就是我需要大师指导的地方.我知道Data Virtualization是什么,它还不够.

.net c# silverlight wpf datagrid

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

如何将eventData传递给.submit()?

文档没有任何使用示例.submit( [eventData], handler(eventObject) )

我有以下函数,我需要将url传递给row_save()函数.

function row_edit() {
    var url = $(this).attr("href");
    var row = $(this).closest('tr')
    row.load(
        url + "/",
        null,
        function () {
            $("#save-form").submit(url, row_save); // ?? Not sure
        }
    );
    return false;
}


function row_save() {
  var url = ????
  var item = $(this).parent();
  var data = {
    item_description: item.find("#id_item_description").val()    
  };
  $.post(url, data, function (result) {
    if (result != "failure") {
      item.before($("li", result).get(0));
      item.remove();
      $(".row_edit").click(row_edit);
    }
    else {
      alert("Failed to validate before saving.");
    }
  }); …
Run Code Online (Sandbox Code Playgroud)

jquery

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

Git:"通配符refspec",在拉动时没有遥控器上的匹配

我在cloufforge设置了一个新的Git存储库,并且遇到了一些不寻常的问题.

When I do a git pull origin master

From https://dndigital.git.cloudforge.com/project
 * branch            master     -> FETCH_HEAD
Already up-to-date.
Run Code Online (Sandbox Code Playgroud)

但是,如果一位同事做同样的事情,他会一遍又一遍地留下同样的信息,而不会得到"已经是最新的"

remote: Counting objects: 85, done.
remote: Compressing objects: 100% (58/58), done.
remote: Total 76 (delta 59), reused 19 (delta 13)
Unpacking objects: 100% (76/76), done.
From https://dndigital.git.cloudforge.com/project
 * branch            master     -> FETCH_HEAD
There are no candidates for merging among the refs that you just fetched.
Generally this means that you provided a wildcard refspec which had no
matches on the remote …
Run Code Online (Sandbox Code Playgroud)

git

8
推荐指数
2
解决办法
7025
查看次数

如何在NSTimeInterval上使用谓词?

我想获得当月的所有记录,因此我将该月的第一个日期和该月的最后一天的两个谓词堆叠起来.由于我使用CoreData,因此日期实际存储为NSTimeInterval.

NSCalendar *calendar = [NSCalendar currentCalendar];

//Get beginning of current month
NSDateComponents *beginningOfCurrentMonthComponents = [calendar components:(NSEraCalendarUnit | NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit) fromDate:date];
[beginningOfCurrentMonthComponents setDay:1];
NSDate *beginningOfCurrentMonthDate = [calendar dateFromComponents:beginningOfCurrentMonthComponents];

//Set a single month to be added to the current month
NSDateComponents *oneMonth = [[NSDateComponents alloc] init];
[oneMonth setMonth:1];

//determine the last day of this month
NSDate *beginningOfNextMonthDate = [calendar dateByAddingComponents:oneMonth toDate:beginningOfCurrentMonthDate options:0];

NSMutableArray *parr = [NSMutableArray array];
[parr addObject:[NSPredicate predicateWithFormat:@"recordDate >= %d", [beginningOfCurrentMonthDate timeIntervalSince1970]]];
[parr addObject:[NSPredicate predicateWithFormat:@"recordDate < %d", …
Run Code Online (Sandbox Code Playgroud)

nsdate nspredicate ios unrecognized-selector

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

Alembic:如何更改主键字段的长度?

我正在尝试将主键字段的长度从3更改为6.

模型:

class Server(db.Model):
    country_code = db.Column(db.String(6), primary_key=True)
Run Code Online (Sandbox Code Playgroud)

移民:

def upgrade():
    op.alter_column('server', 'country_code',
               existing_type=mysql.VARCHAR(length=3),
               type_=sa.String(length=6))
Run Code Online (Sandbox Code Playgroud)

但是我收到此错误消息,我不太明白,为什么它认为我将其更改为null.

_mysql_exceptions.DataError:(1171,'PRIMARY KEY的所有部分必须为NOT NULL;如果在键中需要NULL,则使用UNIQUE')

python mysql alembic

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