程序设计

专业和发烧友程序员的问答


11
PHP + curl,HTTP POST示例代码?
谁能告诉我如何使用HTTP POST进行php curl? 我想这样发送数据: username=user1, password=passuser1, gender=1 至 www.domain.com 我希望curl会返回类似的响应result=OK。有什么例子吗?
489 php  http  curl  http-post 

13
如何找到foreach索引?
是否可以找到foreach索引? 在一个for循环如下: for ($i = 0; $i < 10; ++$i) { echo $i . ' '; } $i 会给你索引。 我必须使用for循环还是有某种方法可以在foreach循环中获取索引?
489 php  loops  foreach 

6
为什么该程序有效?我试图创建语法错误
我正在Windows 7上运行ActiveState的32位ActivePerl 5.14.2。我想弄乱Git预提交钩子来检测正在检查的语法错误程序。(以某种方式,我只是设法做出了这样的错误提交。)因此,作为测试程序,我随机记下了这一点: use strict; use warnings; Syntax error! exit 0; 但是,它编译并执行时没有任何警告,并且退出时错误级别为零。这个有效的语法如何?
489 perl 

11
在Java中从哪里获取“ UTF-8”字符串文字?
我试图在这段代码中使用常量而不是字符串文字: new InputStreamReader(new FileInputStream(file), "UTF-8") "UTF-8"出现在代码中的频率较高,而最好是引用某些static final变量。您知道我在JDK哪里可以找到这样的变量吗? 顺便说一句,顺便说一句,这样的常数是不好的设计:公共静态文字...不是数据复制的解决方案
489 java 

30
阻止脚本编写者抨击您的网站
Наэтотвопросестьответына 堆栈溢出нарусском:Какустроитьловушкудляхакера,илидостойноотбиватьатаки? 我已经接受了答案,但可悲的是,我相信我们会坚持我们最初的最坏情况:每个人都在尝试购买废话。简短说明:缓存/ Web场使无法跟踪命中,并且任何解决方法(发送非缓存的Web信标,写入统一表等)都会使网站的速度比僵尸程序慢。思科提供的一些昂贵的硬件或类似产品可能可以提供较高的帮助,但是如果将每个人都验证码作为替代方案,则很难证明其成本合理。稍后,我将尝试进行更详细的解释,并为以后的搜索者进行清理(尽管欢迎其他人尝试,因为它是社区Wiki)。 情况 这与woot.com上的垃圾袋销售有关。我是Woot Workshop的总裁,该工作室是Woot的子公司,负责设计,撰写产品说明,播客,博客文章并主持论坛。我使用CSS / HTML,几乎不熟悉其他技术。我与开发人员紧密合作,并在这里讨论了所有答案(以及我们已有的许多其他想法)。 可用性是我工作的重要部分,而使网站令人兴奋和有趣则是其余的大部分。这就是以下三个目标的来源。CAPTCHA损害了可用性,并且机器人从我们的垃圾销售中窃取了乐趣和兴奋。 僵尸程序在第二次屏幕抓取(和/或扫描我们的RSS)以随机垃圾销售的形式猛烈抨击了我们的首页。他们看到的那一刻,它触发程序的第二阶段登录,单击“我想要的”,填写表格,然后购买废话。 评价 lc:在stackoverflow和其他使用此方法的站点上,它们几乎总是与经过身份验证(登录)的用户打交道,因为尝试执行的任务需要这样做。 在Woot上,匿名(未登录)用户可以查看我们的主页。换句话说,砰砰机器人可以是未经身份验证的(除了IP地址之外,基本上是不可跟踪的)。 因此,我们将返回到IP扫描,a)在这个云网络和垃圾邮件僵尸时代,这是相当无用的; b)鉴于来自一个IP地址的企业数量,捕获了太多的无辜者(更不用说与之相关的问题了)非静态IP ISP和潜在的性能损失,以试图对此进行跟踪)。 哦,让人们打电话给我们将是最糟糕的情况。我们可以让他们给您打电话吗? BradC:Ned Batchelder的方法看起来很酷,但是它们的设计很牢固,可以击败为站点网络构建的机器人。我们的问题是机器人是专门为打败我们的网站而建造的。这些方法中的某些方法可能会在短时间内起作用,直到脚本编写者发展他们的机器人以忽略蜜罐,对附近的标签名称(而不是表单ID)进行屏幕抓取,并使用具有javascript功能的浏览器控件。 lc再一次:“当然,除非炒作是您的营销计划的一部分。” 是的,肯定是。物品出现的惊奇程度,以及设法获得一件物品的兴奋程度,可能与最终得到的废话一样重要或更重要。消除先到先得的一切都会不利于赢得“垃圾”的快感。 novatrust:我首先欢迎我们的新机器人霸主。实际上,我们确实提供RSSfeed,以允许第三方应用程序扫描我们的网站上的产品信息,但不能扫描主要网站的HTML。如果我的解释正确,那么您的解决方案确实会通过完全牺牲目标1来解决目标2(性能问题),而只是放弃了机器人将购买大部分废品的事实。我赞成您的回答,因为您的最后一段悲观主义对我来说很准确。这里似乎没有银弹。 其余的响应通常依赖于IP跟踪,这再次显得既无用(对于僵尸网络/僵尸网络/云网络)又有害(捕获来自相同IP目的地的许多无辜者)。 还有其他方法/想法吗?我的开发人员一直在说“让我们做CAPTCHA”,但我希望对想要我们的一些废话的所有实际人来说,侵入性方法要少一些。 原始问题 假设您要出售的东西具有很高的感知价值,而价格却非常有限。没有人确切知道您何时会出售该物品。经常有超过一百万的人过来看看您要卖的东西。 您最终会遇到脚本编写者和机器人程序,他们试图以编程方式[a]弄清楚您何时出售该商品,[b]确保它们是第一个购买该商品的人。这很烂,原因有两个: 您的网站遭到非人类的猛烈抨击,使所有人的工作速度减慢。 脚本编写者最终“赢得”了产品,使常客感到被骗。 一个看似显而易见的解决方案是在下订单之前为用户创建一些跳转,但是这至少存在三个问题: 用户体验很糟糕,因为他们必须破译CAPTCHA,挑选猫或解决数学问题。 如果感觉到的好处足够高,而人群又足够多,那么一些人就会在任何调整中找到自己的出路,导致军备竞赛。(特别简单的调整是正确的;隐藏的“注释”表单,重新排列表单元素,给它们贴错标签,隐藏的“陷阱”文本都将一次起作用,然后需要进行更改以针对此特定表单进行战斗) 即使脚本编写者无法“解决”您的调整,也不会阻止他们猛击您的首页,然后发出警报,要求脚本编写者手动填写订单。如果他们从解决[a]中获得优势,他们将很可能仍然会赢得[b],因为他们将是第一个进入订单页面的人。此外,1.仍然会发生,导致服务器错误并降低每个人的性能。 另一个解决方案是监视IP击中次数过多,将其从防火墙中阻止或以其他方式阻止其排序。这可以解决2.并防止[b],但是扫描IP会对性能造成巨大影响,并且可能比脚本编写者自己引起的问题更多,例如1.。此外,云网络和垃圾邮件僵尸的可能性使IP检查变得毫无用处。 第三个想法,迫使订单被加载一段时间(例如半秒钟),可能会减慢快速订单的进度,但是同样,脚本编写者仍然是第一批加入该订单的人,无论以何种速度都不会实际用户。 目标 将该项目出售给没有脚本的人。 保持网站的运行速度不受机器人的影响。 不要为了完成“正常”用户的任务而烦恼他们,以证明他们是人类。



8
如何重新定位Chrome开发者工具
默认情况下,这些工具会在Chrome窗口的底部打开。对于宽屏显示而言,这是一个相当糟糕的选择,因为右侧有很多空白空间,但没有太多垂直空间可保留。不幸的是,我找不到重新定位工具的方法。我想把它们放在一边,类似于萤火虫。 与我想要的唯一类似的选择是分离开发工具,并将chrome和工具窗口并排放置。但是,这对于从IDE到浏览器并向后快速alt切换不是很方便,因此“集成”解决方案将是不错的选择。


30
如何在Android Studio中以调试模式获取SHA-1指纹证书?
我已经从Eclipse转移到Android Studio。现在,我正在尝试在我的地图应用程序上工作。所以我需要我的SHA-1指纹证书编号。 当我使用Eclipse时,它就在Windows-> Preferences-> Android-> Build下。但是在Android Studio中,我找不到类似的任何选项,因此我可以轻松找到指纹。我正在使用Windows。我从此链接中了解到: 从IDE运行或调试项目时,Android Studio会自动以调试模式对应用程序进行签名。 因此,从该链接设置了Java bin路径后,我尝试在命令行中运行此命令,很遗憾找不到指纹。据说这是非法的选择。 keytool -list -v -keystore "%USERPROFILE%\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android 有没有办法像在Eclipse中一样轻松地从Android Studio查找SHA-1指纹?由于我是Android Studio的新手,因此找到它的完整过程是什么? 我要补充的另一件事是,我让Eclipse生成SHA-1指纹,并且以前我已在Google开发者控制台中将我的应用程序注册在该指纹上,并且使用该API密钥在Eclipse中对该应用程序进行了处理。我可以在Android Studio中对此项目使用相同的API密钥吗?

6
如何在Ubuntu上安装Boost
我在Ubuntu上,并且想安装Boost。我尝试过 sudo apt-get install boost 但是没有这样的软件包。在Ubuntu上安装Boost的最佳方法是什么?
489 ubuntu  boost 




By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.