一旦得手,攻击者可立即利用Graph API遍历收件箱,提取包含财务、合同、人事等关键词的邮件线程,自动生成极具欺骗性的横向钓鱼内容,形成指数级扩散。面对此类攻击,仅依赖邮件层防护已显不足。...= {'Authorization': f'Bearer {ACCESS_TOKEN}'}# 获取最近50封邮件mail_resp = requests.get('https://graph.microsoft.com...以下为通过Microsoft Graph API创建条件访问策略的示例:policy = {"displayName": "Block risky logins to SharePoint","state...以下为基于Microsoft Purview审计日志的异常共享检测逻辑:import pandas as pd# 假设audit_logs为从Microsoft 365获取的共享事件列表df = pd.DataFrame...会话的User-Agent、IP、地理位置是否与共享创建者一致?通过构建会话图谱(Session Graph),将文件访问、登录、API调用等事件关联,可有效识别异常跳转链。
SharePoint 托管工作台在真实的 SharePoint 环境中运行,这意味着组件可以使用 SharePoint API,包括 SharePoint REST API。...本地工作台没有真正的 SharePoint 上下文,这意味着它没有安全上下文并且无法通过身份验证来调用 SharePoint API,包括 SharePoint REST API。...如果您的组件调用 SharePoint REST API,则在本地工作台中运行它时会失败。...REST API检索数据 SpFxHttpClientDemoWebPart.ts 导入类 import { SPHttpClient, SPHttpClientResponse } from '@microsoft..._countries = response; this.render(); }); } //该方法使用SharePoint REST API从Countries列表中检索列表项。
在典型企业环境中,员工每日接收大量来自同事或合作伙伴的SharePoint共享链接,内容涵盖合同、报表、项目计划等敏感信息。...更关键的是,SharePoint支持动态生成临时共享链接,且可通过Microsoft Graph API进行程序化管理。...(如普通员工创建大量登录页面)以下Python脚本示例展示如何通过Microsoft Graph API审计可疑共享项:import requestsimport jsondef detect_suspicious_sharing...(token):headers = {'Authorization': f'Bearer {token}'}url = "https://graph.microsoft.com/v1.0/sites/root...in drives:items_url = f"https://graph.microsoft.com/v1.0/drives/{drive['id']}/root/children"items =
前面一篇我们介绍了 Office 365 REST API 的官方工具的使用,本篇我们来看一下 SharePoint REST API 本身的描述、结构和使用方法,以及一些使用经验。...首先来看看SharePoint REST API 的概述: REST API 服务是在 SharePoint 2013 中被引入的,官方认为 REST API 服务可以媲美于现有的 SharePoint...在 REST API 出现之前,我们需要通过 client.svc 这个 WCF 服务来请求 SharePoint 的列表数据,而且仅限于获取数据。数据的修改并没有在这个服务中体现。...下面我们以特定网站为例,来看一下 REST API 能完成哪些常见操作: (1)对列表和列表项的操作 列表: URL:http:///web/lists...当需要向列表中插入新项时,我们需要使用列表项集合 API,使用 POST 方法插入数据。而需要修改列表中某一项时,则需要使用指定列表项 API,使用 MERGE 方法来更新数据。
REST的定义与作用 在SharePoint 2010中,基本上有如下几种数据访问方式...(强类型) REST是SharePoint中一种数据访问方式,这种方式只支持列表数据访问接口,位于_vti_bin目录下的的listdata.svc。...URL中(比如通过:_vti_bin/listdata.svc/Test(3)就可以获取到Test这个列表中ID为3的那个条目的信息,当然也可以通过一些特殊的写法实现简单的查询、排序功能),并可以通过GET...: url, success: function (data) { //result = data.d.results; //查询所有列表项... complete: function () { callback(result); } }); 注:当查询所有列表项为全部是
此类攻击不依赖凭据窃取,而是滥用OAuth 2.0授权框架中的“用户同意”流程,使恶意应用获得长期有效的刷新令牌(refresh token),进而通过Microsoft Graph API静默读取邮件...://graph.microsoft.com/v1.0/me/messages?...3.3 缺乏应用行为基线监控SIEM系统通常未将“新应用首次访问Graph API”与“大量邮件读取”关联分析。即使启用日志,也因数据量庞大而忽略异常。3.4 审计滞后企业极少定期审查已授权应用列表。...Graph 查询示例:GET https://graph.microsoft.com/v1.0/me/oauth2PermissionGrantsAuthorization: Bearer 列表,自动调用撤销接口:def revoke_consent(grant_id, admin_token):url = f"https://graph.microsoft.com
随后构造一封看似来自HR部门的邮件,主题通常包含“Salary Amendment”、“FIN_SALARY”或“Equity Grant Confirmation”等关键词。...搜索并下载敏感文档:利用Graph API遍历OneDrive与SharePoint中的文件夹,下载包含“NDA”、“Term Sheet”、“Due Diligence”等关键词的文档。...以下Python脚本利用Microsoft Graph API实现授权审计:import requestsdef audit_oauth_apps(user_token):headers = {"Authorization...": f"Bearer {user_token}"}url = "https://graph.microsoft.com/v1.0/me/oauth2PermissionGrants"response...//graph.microsoft.com/v1.0/applications/{app_id}",headers=headers).json()display_name = app_info.get(
首先来说一下本文的背景: 使用 SharePoint 做过开发的同学们应该都知道,SharePoint 有一套客户端对象模型(Client Object Model)用于读取和操作列表和文档库的数据。...值得庆幸的是我们还有另外一套神器:SharePoint REST API (REST API reference and samples)。...SharePoint为我们提供了一套标准的 REST API,利用它我们可以通过网络请求的方式来读取和更新数据。读取数据还算简单,只需要拼接 API 地址和解析 json / XML 数据就可以了。...(关于 REST API 的使用,我会在随后的文章中介绍,这里只是让大家感受一下使用的感受。)所以相对以对象模型,我们需要做的工作也多了不少。...下一篇我们将对前面提到的 SharePoint 2013 REST API 做出详细介绍,谢谢!
随后,构造看似来自监管机构、智库或媒体的邮件,附件标题如《关于您在能源委员会质询的后续调查问卷》或《机密:拟议法案第4条修订草案》,极大提升打开率与信任度。...例如,发送一封看似来自《卫报》记者的邮件:“我们正在撰写关于您提案的报道,请在此OneDrive链接中查看事实核查草稿”,链接指向攻击者控制的SharePoint站点,页面模仿Microsoft登录界面...(2.4)横向移动与持久化获取邮箱访问权后,攻击者常利用“自动转发规则”窃取未来邮件,或通过Graph API读取联系人、会议记录,为下一轮攻击提供情报。...部分样本还部署了基于OAuth应用的持久化后门:POST https://graph.microsoft.com/v1.0/me/mailFolders/inbox/messageRulesAuthorization...(5.1)系统架构前端:Outlook插件,提供举报按钮与可疑链接预览;中台:基于Microsoft Graph API的行为分析引擎;后台:条件访问策略管理与OAuth授权审计模块。
= new XMLHttpRequest();xhr.open('GET', 'https://api.example.com/data'); 使用XMLHttpRequest对象发起请求 定时器...(); // 如果任务内容不为空,则添加到列表中 if (taskText) { // 创建一个新的列表项元素 let listItem = document.createElement...// 将列表项添加到任务列表中 taskList.appendChild(listItem); // 清空输入框 taskInput.value...添加任务文本和删除按钮到列表项:使用 appendChild 方法将任务文本和删除按钮添加到新的列表项中。 将列表项添加到任务列表:使用 appendChild 方法将新的列表项添加到任务列表中。...清空输入框:将输入框的值设置为空字符串,以便用户可以输入下一个任务。 为删除按钮添加点击事件监听器:为删除按钮绑定点击事件,当用户点击删除按钮时,从任务列表中移除对应的列表项。
Graph API 的代码示例,验证防御措施的可行性。...邀请可通过以下方式发起:手动邀请:管理员或具有“Guest Inviter”角色的用户通过 Azure 门户、Microsoft Graph API 或 PowerShell 发送邀请。...一旦获得权限,攻击者可通过 Microsoft Graph API 发送邀请。...Single User条件:同一用户在 1 小时内发送超过 5 次邀请响应:自动禁用该用户邀请权限并告警Graph API 查询示例:GET https://graph.microsoft.com/v1.0...此外,通过 Graph API 监控,我们能在 5 分钟内检测到异常邀请模式并自动响应。6 讨论本攻击揭示了现代 IAM 系统的一个根本矛盾:便利性与安全性之间的张力。
implements DocumentReader { public static final String MICROSOFT_GRAPH_BASE_URL = "https://graph.microsoft.com...Graph API. */ private List getNoteBookContent(String accessToken, String notebookId) {...Graph API. */ private List getSectionContent(String accessToken, String sectionId) { /...之后通过buildMetadata构建metaData,最后构建Document返回getNoteBookContent请求https://graph.microsoft.com/v1.0/me/onenote.../v1.0/me/onenote/pages/pageId/content获取html结果,再通过jsoup解析title、text,最后通过\n拼接返回buildMetadata方法根据不同的resourceType
Microsoft REST API指南 摘要 Microsoft REST API指南作为一种设计原则,鼓励应用程序开发人员通过RESTful HTTP接口访问资源。...本文档建立了 Microsoft REST API 开发人员应该遵循的指南, 以便统一一致地开发API。...下面是Microsoft REST服务应该支持的方法列表。并不是所有资源都支持所有方法,但是使用以下方法的所有资源必须符合它们的用法。...符合Microsoft REST API准则的API应该支持PATCH。 7.4.3....可以通过逗号分隔的属性名称列表以及可选方向限定符来指定子排序。 例如: GET https://api.contoso.com/v1.0/people?
在Github上面,微软除了有一个最大的组织(https://github.com/microsoft)外, 还有两个跟Office 365开发直接相关的组织,他们分别是 SharePoint 开发 :...https://github.com/sharepoint Office 365 开发 :https://github.com/officedev 如今的Office 365,不仅在产品研发时用到了很多开源的技术和组件...为了让Microsoft Graph能够极大地方便开发者调用,从一开始的设计理念,就是要支持所有的开发平台 —— 不管是开源的,还是不开源的。...这一点是由Microsoft Graph的工作机制来保证的 —— 它就是一套标准的REST API,你可以在任意平台进行调用,而且产品组还提供了主流平台的SDK 。 ?...如果你想要开发Office Add-ins(插件),SharePoint Add-ins(插件),还有Microsoft Teams Apps(包括Bot, Tab, Connector等),你不光是仍然可以使用
我写过一篇文章 《拥抱开源,Office 365开发迎来新时代》,给大家介绍了Office 365开发的典型场景是如何支持开源平台的:Office 365通过Microsoft Graph,以REST...API的方式提供服务,任何开发平台都可以很方便地与其进行集成;Office Add-ins,SharePoint Add-ins和Microsoft Teams Apps开发,都可以基于标准的Web开发技术栈来实现...大家知道,.NET从头到脚都是已经完全开源了的,针对Office 365的这些开发场景,是否有开箱即用的模板可供大家使用呢?...这一套模板库,不仅仅可以降低广大的.NET 开发人员(准确地说是.NET Core开发人员)学习和使用Office 365开发平台的门槛(尤其是如何在不同的场景下完成OAuth认证以及快速通过实例学习Graph...的典型功能),还有一个独特的价值是可以让你在国际版和国内版这两个平台的选择和切换过程中少走一些弯路,我相信真正做过这方面开发的朋友们现在一定是热泪盈眶的表情。
以下Python脚本模拟检测异常会话(基于Microsoft Graph API):import requestsfrom datetime import datetime, timedeltaGRAPH_API_TOKEN...= "your_app_token"USER_ID = "user@contoso.com"def get_user_signins(user_id):url = f"https://graph.microsoft.com.../v1.0/auditLogs/signIns?...$filter=userPrincipalName eq '{user_id}'&$top=10"headers = {"Authorization": f"Bearer {GRAPH_API_TOKEN...Detected anomalous sessions:", anomalies)# 可触发自动会话撤销4.3 响应层:自动化会话撤销与取证一旦检测到可疑活动,应立即撤销用户所有活动会话:POST https://graph.microsoft.com
一、进阶功能概述在本教程中,我们将探讨以下进阶功能:长按触发选择模式:通过长按列表项进入选择模式批量操作功能实现:删除、移动、分享等批量操作的具体实现选择状态的动画效果:为选择状态变化添加流畅的动画效果自定义选择样式...:定制选择框和选中状态的视觉效果列表项交互优化:优化列表项的点击、长按等交互体验状态持久化:保存和恢复选择状态二、长按触发选择模式除了通过按钮进入选择模式外,我们还可以实现长按列表项进入选择模式的功能,...六、列表项交互优化1....'#F0F7FF' : '#FFFFFF' }})这段代码使用stateStyles为列表项添加了按下状态的样式,提供更好的点击反馈。2....滑动操作除了选择模式,我们还可以为列表项添加滑动操作功能:// 在ListItem中添加滑动操作.swipeAction({ end: [ { action:
图片Aspose为不同平台提供20多种文件格式API,包括.NET、Java、C++和Android、Microsoft SharePoint报告解决方案以及Microsoft SQL Server Reporting...03、Aspose.Total for C++Aspose.Total for C++是一个完整的C++文件格式自动化库包,专门用于创建、操作和转换来自Microsoft Office和PDF的流行格式...05、Aspose.Total for SharePointAspose.Total for SharePoint是Aspose提供的每个已编译SharePoint应用程序的组合。...它使开发人员可以轻松地从Microsoft SharePoint中转换和合并文档,并支持具有高保真度转换的多种文档格式。...05、Aspose.CADCAD图纸转换&转换解决方案:易于使用的原生API和云REST SDK,用于构建桌面、Web和基于云的应用程序,以查看和转换AutoCAD图纸。
尤其在Microsoft 365、Salesforce、Google Workspace等主流SaaS平台中,一旦主账户凭证失窃,攻击者可在数分钟内完成权限提升、邮箱导出、API调用乃至数据外泄,而平均检测延迟仍超过...API或REST接口横向移动;部署勒索载荷或导出数据。...(Microsoft Graph PowerShell)枚举用户;利用New-MailboxExportRequest导出高管邮箱;部署Cobalt Strike Beacon并通过合法CDN分发勒索载荷.../v1.0/oauth2PermissionGrants"grants = []next_url = urlwhile next_url:resp = requests.get(next_url, headers...Graph API /users/{id}/revokeSignInSessions;发送Teams通知至用户及IT支持;创建Jira工单要求用户完成安全培训;更新IAM策略,强制启用FIDO2。
对于此测试环境,您必须指定 –AllowHTTP 参数以允许 SharePoint 2013 通过使用 HTTP 接收来自 Office Web Apps Server 服务器场的发现信息。...一起运行的概述 来自 microsoft.com/zh-cn/library/ff431685.aspx> 规划 Office Web Apps(与 SharePoint...2013 一起使用) 来自 microsoft.com/zh-cn/library/ff431682.aspx> 配置 SharePoint 2013 以使用 Office...Web Apps 来自 microsoft.com/zh-cn/library/ff431687.aspx> New-SPWOPIBinding 来自 microsoft.com/zh-cn/library/jj219441.aspx> 配置 SharePoint 2013 以使用 Office Web Apps 来自 <http: