消毒用户输入的最佳方法是什么?
我需要以集中式的方式来防止XSS攻击,以便我不必明确消毒每个输入. 我的问题是,在URL/请求处理级别上进行所有输入,在服务之前或在演示级别(输出卫生化)进行编码/消毒输入? 哪一个更好,为什么? 解决方案 您需要注意两个领域: 在任何语言中使用输入作为脚本的一部分的任何地方,最著名的是包括SQL.在SQL的特殊情况下,唯一的建议处理方式是使用参数化查询(这将导致数据库中的未播放内容,但就像字符串一样:是理想的).在将角色直接替换为SQL字符串之前,涉及字符引用的魔术引用的任何东西都是劣等的(因为犯错很容易).参数化查询无法完成的任何事情都是针对SQL注入的服务,不应允许用户指定. 在您展示输入的内容的任何地方.输入的来源可以是直接的(包括通过cookie)或间接(通过数据库或文件).在这种情况下,您的默认方法应该是使用户 See 是输入文本的文本.这很容易正确实现,因为您实际上唯一需要引用的字符是中以进行显示.
0 2023-06-03
编程技术问答社区
为什么在C++中必须对字符串字面的反斜线进行转义?
我想声明两种语言的相同的正则表达方式.对于TCL,我这样做 set pattern "\d\s\S" 但是,对于C ++,我必须对相同的模式进行此操作 boost::regex pattern("\\d\\s\\S"); 否则C ++编译器将告诉我们以下内容: warning C4129: 'd' : unrecognized character escape sequence 那么,为什么TCL不尝试找到\ d \ s \ s逃脱符号而只是忽略\ -s,但C ++尝试和很烂? P.S. php像我熟悉时一样工作. 解决方案 这就是C ++和PHP的不同之处.在PHP中,后斜线之后的角色与一小部分特殊角色相匹配(我相信"rnvtx").如果比赛失败,它将继续不改变含义. 但是,C ++期望角色在那个小集合中(我认为该集合更大BTW),但是如果匹配失败,您会看到错误. 其他解决方案 c ++具有字符逃脱序列.逃脱序列(以\c为单位
0 2023-05-28
编程技术问答社区
将模式从特定行移动到该规则的结尾
我想知道如何将某些行以后放置的图案移动到规则的另一个位置. 考虑以下示例, rule tmap { hideON student_analysis Sam -expr "marks(Sam)" -gt 0 hideOFF -Designate [ School = "ABC] -Designate [ Name = "Sam" ] -Designate [ Country= "ABC] -Designate [ State = "Sam"] -Designate [ ROLL Number= "Sam"] } 需要从学生_分析转移到结束卷曲括号之前的地方.输出文件应该具有 之类的东西 rule tmap { hideON student_analysis Sam -expr "marks(Sam)" -gt 0 -Designate [ School = "ABC] -D
0 2023-05-25
编程技术问答社区
如何从TCL脚本调用Perl脚本
我有一个带有4个perl命令的文件, 我想从TCL打开文件并执行每个Perl命令. tcl脚本 runcmds $file proc runcmds {file} { set fileid [open $file "r"] set options [read $fileid] close $fileid set options [split $options "\n"] #saperating each commad with new line foreach line $options { exec perl $line } } 执行上述脚本时 我收到的错误是"can't open the perl script /../../ : No Such file or directory " Use -S to search $PATH for it. 解决方案 tl; dr:您缺少-e,使
20 2023-05-24
编程技术问答社区
Strawberry Perl v5.30.0无法安装Tcl(Windows 10)。
我从 strawberlyperl.com 上下载并安装了草莓 - perl-5.30.0.1-64bit.msi 10并尝试使用CPAN安装TCL模块,但由于缺少TCLSH而失败.有什么问题? C:\Strawberry>cpan Tcl Loading internal logger. Log::Log4perl recommended for better logging CPAN: CPAN::SQLite loaded ok (v0.217) Database was generated on Thu, 24 Oct 2019 12:40:15 GMT Running install for module 'Tcl' CPAN: Digest::SHA loaded ok (v6.02) CPAN: Compress::Zlib loaded ok (v2.086) Checksum for C:\STRAWB~1\cpan\sources\authors\id\V\VK
2 2023-05-24
编程技术问答社区
限制滚动条的长度
我正在尝试使用perl tk创建一个简单的记事本.我已经使用滚动小部件来创建文本带有两个滚动条的小部件 - 右侧一个,一个在底部.两个卷轴聚会的地方看起来像这样: 但是,我想让它看起来像Microsoft的"记事本"应用程序中所看到的.这就是我想要的: 如您所见,现在有一个"空的正方形",两个滚动条会面.记事本的另一个功能是,该"正方形"可用于调整窗口大小的大小.我希望能够实现同样的事情. 我该怎么做? 谢谢! 解决方案 诀窍是用grid几何管理器放置小部件,该grid几何经理基本上创建了(不均匀的)4x4网格,带有文本窗口小部件,位于" North-West"(North-West),North-north-north-north-north-north-north-东方","西南"的水平滚动栏,以及"东南"的空广场.在 man page . 上,有一个相关示例. 我认为我允许引用男人页面示例为合理使用(注意它是版权©1995-1997 Roge
4 2023-05-24
编程技术问答社区
我应该将Perl/TK,TCL :: TK或TKX用于Perl GUI吗?
我真的很喜欢Perl/Tk,但人们认为这是DOA.我认为Tcl::Tk和Tkx是更好的解决方案.假设我掉落Perl/Tk.使用Tcl::Tk的"最受支持的"路线(自2007年以来一直没有更新,似乎无法达到其作者),还是Tkx?这些是否积极使用/支持? 解决方案 在引擎盖下 tcl :: tk :: tk and tkx 使用 tkx是由Activestate开发的,他们在GUI中使用它作为其工具. (例如ppm)它是积极使用的,尽管很难说多么广泛.它也得到了支持,但是由于TCL上如此薄层,因此支持并不是很多.从某种意义上说,这是一件好事 - 几乎没有改变或打破 - 但确实给人留下了印象. TCL :: TK最初是一个附带项目,以证明与Perl/TK的API兼容性是可能的.我喜欢这个想法 - 只需要将use Tk更改为use Tcl::Tk并获得较新版本的TCL/TK(例如瓷砖(主题)支持)的好处,那将是很棒的.不幸的是,它还不存在.似乎有一些工作正在完成,但没有很多.它确实
14 2023-05-24
编程技术问答社区
为什么在不同的编程语言中,模数是不同的?
perl print 2 % -18; - > -16 tcl puts [expr {2 % -18}] - > -16 但是vbscript wscript.echo 2 mod -18 - > 2 为什么有区别? 解决方案 wikipedia答案在这里很有帮助. 简短的摘要是任何整数都可以定义为 a = qn + r 所有这些字母都是整数, 0 几乎每个编程语言都需要(a/n) * n +(a%n)= a.因此,模量的定义几乎总是取决于整数划分的定义.整数除以2/-18 = 0或2/-18 = -1有两种选择.根据您的语言的正确,通常会更改%操作员. 这是因为2 =(-1) * -18 +(-16)和2 = 0 * -18 + 2. 对于perl,情况很复杂. 手动页面说: "使您可以直接访问C编译器实现的模量运算符.该操作员对负操作数的定义不太明确,但是它将更快地执行.在适用
0 2023-05-24
编程技术问答社区
在没有root权限的情况下安装Tkinter
我在没有根特权的情况下尝试在Linux系统上安装TKINTER时遇到了一些麻烦.根据此问题的第二个答案:安装python for Python 有一种方法涉及下载TKINTER和TCL的来源,然后在Custon目录中运行其安装例程,在主目录下方创建了一个级别.我做到了,除了最后一步,它说了运行setup.py构建和设置.我在任何地方都找不到这些文件,也无法构建它们.有谁知道这种例程的持久性是什么,并且可能会阐述吗?谢谢. 供参考:一旦您拥有焦油文件是follwing: cd ~/tcl8.5.11/unix ./configure --prefix=/home/ --exec-prefix=/home/ make make install cd ~/tk8.5.11/unix ./configure --prefix=/home/ --exec-prefix=/home/ --with-tcl=/home//tcl
12 2023-05-23
编程技术问答社区
tcl在文件的某一行插入字符串
我想在特定行中插入一个字符串,我知道行号. ex. #Aa_version = Aa/45.21-a32_1 #Aa_version = Aa/47.21-a33_1 Aa_version = Aa/45.27-a57_2 ->I can get this line number n 我想在n+1 线上插入一行Aa/49.27-a54_1 和put Aa_version = Aa/45.27-a57_2 - > #Aa_version = Aa/45.27-a57_2 输出就像 #Aa_version = Aa/45.21-a32_1 #Aa_version = Aa/47.21-a33_1 #Aa_version = Aa/45.27-a57_2 Aa_version = Aa/49.27-a54_1 我的代码是 set Aa "" set fp [open $file "r+"] set lines [split [read $fp] \n]
14 2023-05-23
编程技术问答社区
根据提交按钮改变隐藏输入字段的值
我的页面中有多种形式,并且根据隐藏的输入值,称为不同的部分. 现在我的问题是,我的一种表单中有2个输入按钮,具体取决于我单击的按钮,我需要发送适当的隐藏输入类型, 例如,以下形式. 如果我单击生成密码按钮, 我希望目标值(隐藏输入字段的值)为generate_password 如果我单击锁定密码,我希望目标值被用户_lock.这是我的代码. puts "" puts " New User request Review " puts " Full Name " puts "
0 2023-05-22
编程技术问答社区
我可以使用 pcap 库来接收 ipv6 数据包吗?
我试图将Hping3转换为Hping6. Hping3使用PCAP库接收IPv4数据包.但是我需要接收IPv6数据包. 解决方案 这是可能的. libpcap能够在电线上捕获任何东西. 其他解决方案 使用ETHERTYPE_IPV6示例: static u_int16_t ether_packet(u_char *args, const struct pcap_pkthdr *pkthdr, co nst u_char *p) { struct ether_header *eptr = (struct ether_header*)p; assert(pkthdr->caplen len); assert(pkthdr->caplen >= sizeof(struct ether_header)); return eptr->ether_type; } // This is the callback. assumes e
0 2023-05-21
编程技术问答社区
Tcl中的命令行解析
我有一个脚本,它需要许多短而长的选择,并且想知道什么是解析命令行参数的最有效方法.使用for-each和if-else会使代码太长且难以修改,因此是否有任何标准功能可以帮助我 解决方案 我们讨论了此四天前发布了一些建议. 也有
2 2023-05-20
编程技术问答社区
使用Ruby来解析Tcl DSL
我希望能够解析一些不被字符串包围的参数的TCL代码. 考虑此TCL代码: proc foo {name} { puts "Foo --> $name" } foo bar 对于那些不熟悉TCL的人,foo是方法名称,而bar是参数(引号在TCL中是可选的). 以前的代码将输出: Foo --> bar 是否可以完全使用Ruby(bar>始终引用)分析相同的输入? ? 等效的红宝石代码是: def foo(name) puts "Foo --> #{name}" end tcl =
0 2023-05-20
编程技术问答社区
Python的TCL文件解析器
我有一个.tcl文件. 有没有可直接从.tcl文件提取数据的解析器?我不想将Regex用于此任务. pyparsing对这个问题是否有效? 我正在使用Python 2.7 解决方案 .tcl文件不是数据文件,它们是用TCL编程语言编写的编程脚本. TCL语言的形式和样式非常灵活,这使得写入通用解析器是一个实质性的项目,无论是在pyparsing还是其他任何软件包中.我鼓励人们开始进行一个新的Pyparsing项目时,首先要将BNF的语言粗略为他们想要的任何细节. tcl wiki 的此页面暗示,即使可能,甚至可能都不会直接地为TCL开发BNF. ,任何人都不太可能会通过包含您的tcl-parser implone-in-python的答案来回答您的问题.也许您特别专注于TCL子集 - 如果您要发布一些示例TCL代码以及想要从中获得的示例代码,那么您更有可能获得有用的响应.
4 2023-05-20
编程技术问答社区
在Python中解析TCL列表
我需要在双括号上拆分空格的TCL列表...例如... OUTPUT = """{{172.25.50.10:01:01-Ethernet 172.25.50.10:01:02-Ethernet {Traffic Item 1}}} {{172.25.50.10:01:02-Ethernet 172.25.50.10:01:01-Ethernet {Traffic Item 1}}}""" 这应该解析为... OUTPUT = ["""{{172.25.50.10:01:01-Ethernet 172.25.50.10:01:02-Ethernet {Traffic Item 1}}}""", """{{172.25.50.10:01:02-Ethernet 172.25.50.10:01:01-Ethernet {Traffic Item 1}}}"""] 我尝试了... import re splitter = re.compile('}}\s+{{
2 2023-05-20
编程技术问答社区
从PDF中搜索文本的脚本
问题 在Mac OS X平台上,我想在Python或TCL中编写一个脚本,以在PDF文件中搜索文本并提取相关部分.感谢任何帮助. 背景 我正在编写脚本以查看pdf内部,以确定它是否是账单,从哪个公司和哪个期间.根据这些信息,我将PDF重命名并将其移至适当的目录.例如,诸如Statement_03948293929384.pdf之类的文件可能会变成2012-07-15 Water Bill.pdf并移至我的Utilities文件夹. 到目前为止我做了什么? 我已经搜索了PDF到Plain-Text工具,但尚未找到任何东西 我已经研究了TCL Wiki并找到了一个例子,但无法正常工作(我在PDF中搜索了文字,但找不到). 我正在研究pdf-parser.py didier stevens 我听说了一个名为pypdf的Python包,接下来会查看它. 更新 我找到了一个命令行工具,称为 pdftotext 由Glyph&Cog撰写,LLC;由 C
0 2023-05-20
编程技术问答社区
在TCL中,我们可以以这种方式传递参数吗?
我有一个有关将TCL中传递参数传递到以下代码的问题: set name "Ronaldo" proc GET_PLAYER_INFO {player_id {player_name "$name"}} { global name puts $player_name } 关于上面的代码,我们有一个全局变量"名称",在Proc get_player_info的参数列表中,参数player player_name的默认值设置为" $ name"?如果名称的值为" Ronaldo",它已经是双引号,我们是否需要在类似的参数列表中放置双引号:plary_name" $ name"?在执行"全局名称"命令之前,plary_name的默认值是" ronaldo"吗?是这样,为什么我们需要在proc中具有"全局名称"命令? 解决方案 无法正常工作; $name根本无法评估,因此默认值将是那些字面的五个字符. 如果您在创建过程时绑定默认值,则会这样做: pr
2 2023-05-19
编程技术问答社区
即使文件位于auto_path目录中,TCL也找不到软件包
在Windows 7,TCL 8.6.4. 我的repo.tcl和region.tcl文件都在c:\ sites \ vive 中 repo是一个软件包: package provide repo 1.0 namespace eval ::repo {} namespace eval ::repo::create{} proc ::repo::create {} {...} ... region.tcl希望访问repo.tcl中的procs,因此看起来像这样: #source ./repo.tcl
2 2023-05-16
编程技术问答社区