我正在寻找一种技术来从添加到Opportunity对象的自定义按钮执行Apex代码,以保护用户免受CSRF的影响。
当前使用的方法来自“问题-自定义”按钮或指向带有自定义控制器的Visualforce页面的链接。本质上:
这种方法的问题是,第二个自定义Visualforce页面是通过HTTP GET检索的,从查询字符串中提取参数,并在没有CSRF保护的情况下执行更新/插入DML操作。Force.com Security源代码扫描程序正在接收这一信息。
我应该补充一点,这个顶点代码是作为托管包和非托管包部署的,因此需要额外的工作来使用PageReference重定向到目标Visualforce页面。这样可以确保在需要时添加名称空间前缀。
如何避免CSRF问题?
我不想在第二个visualforce页面中添加一个表单,该表单带有一个按钮,他们必须按下该按钮才能启动进程(因此在回发中获取ViewStateCSRF保护)。从用户的角度来看,他们已经按下按钮来执行操作。
也许我应该尝试将代码移出第二个可视化force页面的控制器,而使用stand控制器的扩展?
我可以切换到对Apex Web服务的Javascript回调(正如在Call a Apex method from a custom button和How invoke Apex method from custom button中所建议的那样),但这似乎有点混乱,我不确定是否会打开Web服务的另一系列安全问题。
我向Salesforce预订了合作伙伴安全办公时间,并直接与他们讨论了这个问题。
如果需要CSRF保护(即发布到App Exchange),当前不支持我正在尝试的操作。他们提出了两种备选办法:
<apex:page id="embeddedPage" StandardController="Opportunity" extensions="OpportunityExtensionController" showHeader="false" standardStylesheets="true">
<apex:form >
<apex:commandButton value="CSRF Safe Button" action="someMethodInTheExtensionClass" />
</apex:form>
public with sharing class OpportunityExtensionController {
private final Opportunity opportunityFromController;
public OpportunityExtensionController(ApexPages.StandardController controller) {
opportunityFromController = (Opportunity)controller.getRecord();
}
public PageReference someMethodInTheExtensionClass() {
// Perform directly here within the postback rather than redirecting to another page to prevent against XSRF
System.debug('opportunityFromController.Id:' + opportunityFromController.Id);
}
}
这应该可以防止CSRF,因为commandButton将拾取“com.salesforce.visualforce.ViewStateCsrf”隐藏输入,并在得到的iframe中返回服务器。
我提出了从带有CSRF保护的标准实体详细信息页面中调用Apex代码的想法,看看它们是否可以通过自定义按钮直接添加对此的支持。
本文向大家介绍yii2.0之GridView自定义按钮和链接用法,包括了yii2.0之GridView自定义按钮和链接用法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了yii2.0之GridView自定义按钮和链接用法。分享给大家供大家参考。具体实现方法如下: 运行效果如下图所示: 希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。
本文向大家介绍wxWidgets自定义按钮的方法,包括了wxWidgets自定义按钮的方法的使用技巧和注意事项,需要的朋友参考一下 场景: 1.现在的软件上的按钮都不是标准的按钮了,因为基本上是贴图上去的,正常情况下一种图片,鼠标移上去之后按钮显示另一种效果,按下去之后又是另一种效果。 2.wx的做法其实和mfc的按钮原理是一样的,就是给按钮贴图和重绘背景。 以下是源文件. dh_bitmap_b
本文向大家介绍C# WPF 自定义按钮的方法,包括了C# WPF 自定义按钮的方法的使用技巧和注意事项,需要的朋友参考一下 本文介绍WPF一种自定义按钮的方法。 实现效果 使用图片做按钮背景; 自定义鼠标进入时效果; 自定义按压效果; 自定义禁用效果 实现效果如下图所示: 实现步骤 创建CustomButton.cs,继承自Button; 创建一个资源文件ButtonStyles.xaml; 在资
> 标高,同时具有自定义可绘制。 在用户触摸的地方启动涟漪效果。
问题内容: 我想在UITextField上创建自定义清除按钮,即使用rightView并将图像放在此处,问题是将原始的清除按钮事件附加到该自定义rightView上。 在Objective-C中,我可以这样做: 现在如何将其转换为Swift?或任何解决方法? 问题答案: 您可以将自定义按钮添加为类似这样的右视图
我正在努力修改MUI next(v1)中的按钮颜色。 我该如何设置muitheme,使其行为与bootstrap相似,这样我就可以用“btn危险”表示红色,“btn成功”表示绿色? 我尝试了自定义,但它不能正常工作(悬停颜色不会改变),而且似乎是重复的。我有什么选择?