在MATLAB中为每个后续HTTP请求发送会话cookie

时间:2016-10-17 15:23:17

标签: matlab session cookies

我正在尝试使用MATLAB与RESTFul API进行通信。 API使用会话cookie来记住用户。我的MATALB是2015b,只要我知道,它不支持新的HTTP Interface

我的问题是在MATLAB中使用webreadwebwrite函数,会话cookie没有附加到请求,因此每次服务器都会生成一个新会话。

我尝试使用urlread2来读取会话cookie并生成一个具有相同内容的新cookie,以便发送回服务器,但会话cookie是HTTPOnly,因此我生成的cookie对于服务器

任何人都可以帮我提出想法或解决方案吗? MATLAB 2016b会自动转发会话cookie(使用HTTP接口)吗?

1 个答案:

答案 0 :(得分:0)

我能找到解决这个问题的方法:

第一个问题是在MATLAB中获取cookie信息。早于2016b的版本可能无法做到,所以我不得不使用它:

[output,extras] = urlread2('http://www.example.com/','GET');
cookie = extras.firstHeaders.Set_Cookie;  % make sure to get the content of the right session cookie

现在我们有了cookie,让我们将它添加到| weboptions |像这样:

opts = weboptions('KeyName','Cookie','KeyValue',cookie); 

现在只需每次使用| webread |或者| webwrite | ,附上| opts |它:

response = webread('http://www.example.com/',opts);

但是使用这种方法,在使用HTTPOnly cookie进行会话管理的网站上进行XSS攻击非常容易!与所有Web浏览器不同,matlab允许您编辑或创建HTTPOnly cookie! more info here