阅读483 返回首页    go 阿里云 go 技术社区[云栖]


关于http接口防止非法调用的设计方案

关于http接口防止非法调用的设计方案

 

假设有个http接口:

https://www.a.com/getBlog.jsp?uid=12 


其他系统要调用这个接口取数据:

如果不做安全处理,任何系统只要知道接口地址和参数即可调用。很可能造成非法调用,造成安全问题。

为了安全,可以考虑如下方案:

接口调用时增加一个校验参数:如 mcheck=xxxxxx


https://www.a.com/getBlog.jsp?uid=12&mcheck=xxxxxx

校验参数生成规则 假设如下:

  md5(uid+"javaboy2012")

参数为uid和某个约定的字符串 经过md5编码后的值。


调用时候:按照生成规则编码后作为参数传递给接口,


https://www.a.com/getBlog.jsp?uid=123&mcheck=8C4E954B6DBD860517B68FAEF37C87CB


借口根据相同的编码规则作判断

getBlog.jsp 文件内容:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@page import="com.yanek.util.MD5"%>
<%
String uid=request.getParameter("uid");
String mcheck=request.getParameter("mcheck");
String commonkey="javaboy2012";
MD5 md5=new MD5();
if (md5.getMD5ofStr(uid+commonkey).equals(mcheck))
{
   out.print("成功调用,返回合法数据:!"+uid+"的数据");
}
else
{
 out.print("非法调用");
}

%>

 

最后更新:2017-04-04 07:03:45

  上一篇:go 实战:MySQL Sending data导致查询很慢的问题详细分析
  下一篇:go poj 1258 Agri-Net MST