我正在尝试使用MATLAB与RESTFul API进行通信。 API使用会话cookie来记住用户。我的MATALB是2015b,只要我知道,它不支持新的HTTP Interface。
我的问题是在MATLAB中使用webread
和webwrite
函数,会话cookie没有附加到请求,因此每次服务器都会生成一个新会话。
我尝试使用urlread2来读取会话cookie并生成一个具有相同内容的新cookie,以便发送回服务器,但会话cookie是HTTPOnly,因此我生成的cookie对于服务器
任何人都可以帮我提出想法或解决方案吗? MATLAB 2016b会自动转发会话cookie(使用HTTP接口)吗?
答案 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