xss可以做啥
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了xss可以做啥相关的知识,希望对你有一定的参考价值。
参考技术A 1、蠕虫(xss的究极魅力)2、获取cookie
3、获取被攻击者真是ip:
javascript 本身不具有此功能。但可以通过调用API
4、识别用户安装的软件
5、xss钓鱼
6、截图
7、键盘记录
8、访问浏览器访问记录
9、内网扫描
#if 我可以(不能)做啥?
【中文标题】#if 我可以(不能)做啥?【英文标题】:What can('t) I do with #if?#if 我可以(不能)做什么? 【发布时间】:2012-01-04 20:55:48 【问题描述】:我在 config.h 中定义了一堆预处理器配置选项。我是这样使用它们的:
#if CONFIG_OPTION1
/* do some stuff */
#endif
config.h 包含它们的定义:
#define CONFIG_OPTION1 _DEBUG
#define CONFIG_OPTION2 _DEBUG || (NDEBUG && _WIN64)
...
以上行不通。我想根据配置(调试、发布等)和/或其他定义打开和关闭这些配置选项。如果我这样做,它也不起作用:
#define CONFIG_OPTION1 defined(_DEBUG) || defined(NDEBUG)
即使条件看起来应该满足,我也永远不会进入#if CONFIG_OPTION1
。当我写#if defined(_DEBUG)
时,它工作正常,但#if
使用宏作为条件失败。我该如何解决这个问题?
【问题讨论】:
【参考方案1】:好吧,正如您已经注意到的那样,您不能那样做。改为这样做:
#if _DEBUG || (NDEBUG && _WIN64)
# define CONFIG_OPTION2 1
#endif
【讨论】:
+1。根据gcc.gnu.org/onlinedocs/cpp/Defined.html,“如果defined
运算符作为宏扩展的结果出现,则C 标准表示行为未定义。”
@Dave:你不必,不。未定义的宏名称会自动解释为零。
@ruakh:依赖未定义的宏为零是一种非常糟糕的做法。最好将宏显式定义为 0 和 1,并将编译器配置为在使用未定义的预处理器符号时发出错误,这样您会发现基本错误,如拼写错误,以及使用符号而不包含正确的头文件等。
@Lindydancer:很有趣。你说的有道理,但是我上面链接的 GNU C Preprocessor 文档实际上提出了完全相反的建议,例如由于这个属性,#if defined BUFSIZE && BUFSIZE >= 1024
可以“简化”为#if BUFSIZE >= 1024
。以上是关于xss可以做啥的主要内容,如果未能解决你的问题,请参考以下文章
开箱即用的Angular.js不能做啥,而jQuery可以做啥[关闭]
我们可以用 UCWA API (Lync) 做啥?以及我们不能用 UCWA API 做啥?