如何保护网站没有注册或身份验证的REST Webservice

时间:2015-10-27 10:04:35

标签: web-services rest

我在我的应用程序中使用Jersey REST Webservices,就像一种博客网站(意味着不需要用户注册或身份验证)

我有一些webservices查询数据库并将数据发送到前端。

如您所知,用户可以在浏览器网络选项卡中查看Web服务调用并手动触发查询

我的问题是,如何保护服务器/服务不被连续命中(手动写入循环以破坏应用程序)

这就是我的服务的样子

@GET
    @Produces("text/plain")
    public String displaylatestnews() {
        String latestnews = "";
        PreparedStatement selectpstmt = null;
        ResultSet selectRset = null;
        Connection conn = null;
        String selectsql = "SELECT  rssjson from rssfeeds limit 1";

        try {

            Class.forName("com.mysql.jdbc.Driver");
            conn = DriverManager.getConnection(DB_URL, USER, PASS);

            selectpstmt = conn.prepareStatement(selectsql);
            selectRset = selectpstmt.executeQuery();

            if (selectRset.next()) {
                latestnews = selectRset.getString("rssjson");
            }

        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                selectRset.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
            try {
                selectpstmt.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        return "jsonCallback(" + latestnews.toString() + ")";
    }

1 个答案:

答案 0 :(得分:0)

每次有请求时,您都可以开始避免创建与mysql的连接,其次,您可以添加某种缓存。即使只持续几秒钟的缓存也可以节省大量的数据库访问。

相关问题