在没有 SSL/OAuth 的情况下向 Wordpress 提交评论
Submitting comments to Wordpress without SSL /OAuth
我想让 android/iPhone 用户匿名(无需注册博客)向自托管的 Wordpress 博客提交评论。
有没有一种简单、安全的方法来做到这一点?
目前我研究的内容:
JSON API 插件 -> 工作正常,但没有安全性。
WP-API -> 没有实现提交评论方法 + 没有安全性。
好吧,你可以只使用随机数来避免 XSS 攻击,除此之外你显然需要你的用户登录。这是一个简单的方法来做到这一点。
https://wordpress.org/support/topic/plugin-json-api-how-to-add-a-comment-or-post
编辑: 如果您只需要能够 post 使用他们的姓名和电子邮件地址发表评论。如下使用它,但确保从 api 设置 启用 "Respond controller"
http://yourwebsite.com/api/?json=submit_comment&post_id=170&name=Omer&email=commenter@gmail.com&content=comment
第二次编辑: 为了保护评论,您可以使用随机数,如果它不是插件的内置功能,您必须在 submit_comment 控制器。但是从您的 android 应用程序生成随机数会有点困难。一个简单的解决方案是将现有代码包装在一个条件中。类似于 base64 编码的时间标记。
if(isset($_GET['token'])){
$token = base64_decode($_GET['token']);
$current_time = time();
$difference = round(abs($current_time - $token) / 60,2);//difference in minutes
if($difference < 5){
// Run the code thats already in submit_comment controller.
}
}
然后在 REST 中 api 你可以发送类似
的内容
http://yourwebsite.com/api/?json=submit_comment&post_id=170&name=Omer&email=commenter@gmail.com&content=comment&token=BASE64_ENCODED_TIMESTAMP
我想让 android/iPhone 用户匿名(无需注册博客)向自托管的 Wordpress 博客提交评论。
有没有一种简单、安全的方法来做到这一点?
目前我研究的内容:
JSON API 插件 -> 工作正常,但没有安全性。
WP-API -> 没有实现提交评论方法 + 没有安全性。
好吧,你可以只使用随机数来避免 XSS 攻击,除此之外你显然需要你的用户登录。这是一个简单的方法来做到这一点。
https://wordpress.org/support/topic/plugin-json-api-how-to-add-a-comment-or-post
编辑: 如果您只需要能够 post 使用他们的姓名和电子邮件地址发表评论。如下使用它,但确保从 api 设置 启用 "Respond controller"
http://yourwebsite.com/api/?json=submit_comment&post_id=170&name=Omer&email=commenter@gmail.com&content=comment
第二次编辑: 为了保护评论,您可以使用随机数,如果它不是插件的内置功能,您必须在 submit_comment 控制器。但是从您的 android 应用程序生成随机数会有点困难。一个简单的解决方案是将现有代码包装在一个条件中。类似于 base64 编码的时间标记。
if(isset($_GET['token'])){
$token = base64_decode($_GET['token']);
$current_time = time();
$difference = round(abs($current_time - $token) / 60,2);//difference in minutes
if($difference < 5){
// Run the code thats already in submit_comment controller.
}
}
然后在 REST 中 api 你可以发送类似
的内容http://yourwebsite.com/api/?json=submit_comment&post_id=170&name=Omer&email=commenter@gmail.com&content=comment&token=BASE64_ENCODED_TIMESTAMP