问题标签 [drupal-services]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
694 浏览

angular - Angular2 和 Drupal 7 服务 API 身份验证

我正在使用 Drupal 7 服务 API (v7.x-3.17) 连接 Angular2 前端。

我无法使身份验证正常工作。当我登录时,我会收到所有正确的数据(session_name、sessid、token 等)。但是,当我进行任何其他后续调用(即系统/连接)时,它会返回一个不同的“sessid”并告诉我我是一个“匿名用户”。

它只是不承认我刚刚登录。这是我正在采取的步骤:

  1. 通过“用户/登录”调用登录。
  2. API 返回“sessid”、“session_name”、“token”和“user”对象以及所有正确的用户信息。
  3. 存储 X-CSRF-TOKEN 以供后续 API 调用。
  4. 将“X-CSRF-TOKEN”添加到标头并调用API以通过“system/connect”调用获取用户信息。
  5. API 返回一个新的/不同的“sessid”、相同的“session_name”和一个“匿名用户”的“用户”块。

对于我的生活,我无法弄清楚为什么它会返回一个匿名用户。谁能帮我解决这个问题?

这是我的用户/登录功能:

这是我的用户/连接功能:

0 投票
1 回答
198 浏览

web-services - drupal服务自定义资源中的查询字符串

我正在尝试在 drupal 服务 API 中使用查询字符串结构。它不适合我。我也搜索了大多数解决方案,但都失败了。这是m drupal代码:

我想要这样的网址:

请让我知道我在哪里做错了。提前致谢。

0 投票
0 回答
84 浏览

rest - Drupal 服务令牌生命周期

我们使用 Phonegap 构建了一个移动应用程序。

登录流程如下:

  • 用户使用用户名/密码登录
  • 服务返回一个令牌
  • 令牌使用 localstorage 保存在本地
  • 所有未来的请求都是用这个令牌发出的,没有问题

现在这是我们遇到问题的地方: - 我们关闭应用程序几天 - 重新打开应用程序 - 尝试使用保存在本地存储中的令牌执行请求 - 现在我们收到回复说“匿名用户没有权限……”

我的问题是,令牌的生命周期是多少?有没有办法检查令牌的有效性?

我已经为此苦苦挣扎了好几个星期了。

0 投票
1 回答
77 浏览

drupal - 服务类型的 Drupal 7 视图获取不完整的数据

我使用视图模块创建了一个服务视图,其中我有一个字段主体,其格式为原始服务。它只向我显示正文字符串中的第一个字符(例如:如果正文字符串是“All men must die”,则显示“A”),如下所示:

请参考此屏幕截图

我想从字段正文中获取完整的文本。如果我有一个实体引用字段,其中格式化程序设置为实体 id,也会发生这种情况,它只给我实体 uid 的第一个数字(例如:如果 uid 为 16,它显示 1)请帮助

0 投票
0 回答
31 浏览

android - Drupal 7.59 图像无法在 Android 应用程序中下载

我已将我的 drupal 版本从 7.4 更新到 7.59。之后我可以在浏览器中看到我的图像文件,但我无法通过我的 Android 应用程序下载这些图像。在我的旧 drupal 版本中运行良好

你能提出任何解决方案吗?

0 投票
1 回答
94 浏览

php - 防止 Drupal 7 中的任意文件下载

Drupal 漏洞:

可以下载网络服务器可读的任何文件。问题在于 Web 应用程序提供的文件下载功能无法正确验证用户发送的指定要下载哪个文件的参数。这种漏洞最常见的用途之一是恢复应用程序的源代码以及可能包含其他服务密码的配置文件。

开发示例:

在 drupal 中创建的申请表允许用户上传文档。

如果提交时表单不完整,用户将被重定向回表单以完成缺失的详细信息。如果文档已上传,此表单将在名为 zivotopis 的隐藏 HTML 输入字段中包含上传简历的完整路径。表单正确填写并提交后,服务器执行如下代码:

可以看出,zivotopis 中提供的 base64 编码路径将在调用 copy() 时用作 $oldFilePath。因此,恶意用户可以提供任意文件路径,并且该文件将以新名称复制到 webroot。

当我提交表单但拦截 HTTP 请求时。使用 base64 编码格式的 ./sites/default/settings.php 将名为 zivotopis 的新 POST 参数添加到请求中,它应该类似于以下内容:

访问上传​​的文件 url 后,它包含数据库凭据!

我的问题是

如何防止不接受用户控制的文件路径?

或者为什么不禁用 PHP eval() 函数?

关于如何遵循 Drupal Security Glydeness 的任何想法